ファイル書き込み方法について

このQ&Aのポイント
  • ファイル(1)を読み込み、ファイル(2)に書き込む方法を教えてください。
  • ファイル(2)に書き込む前に特定の行を削除する方法を教えてください。
  • ファイル(2)に特定の箇所に書き込む方法を教えてください。
回答を見る
  • ベストアンサー

ファイル書き込みについて

 ファイルが2つあって、片方のファイル(以後、ファイル(1))を読み込んだものを、もう片方のファイル(以後、ファイル(2))に書き込みたいと思います。 ファイル(1) aaaaaa bbbbbb ccccccc dddddddd eee ファイル(2) aiueo kakikukeko  → ある特定の行:A行 sashisuseso  → B行 : papipupepo  → C行 gagigugego  → D行 ざじずぜぞ ナニヌネノ  ここまではわかるんですけど、ファイル(2)に書き込む時に、A行の次の行、B行からD行の前のC行までを一旦削除して、削除したその部分に書き込みたいんですけど、どうしたらいいでしょうか?

  • Perl
  • 回答数2
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • garyu77
  • ベストアンサー率45% (30/66)
回答No.2

>テンポラリファイルはどのようにしたら生成できるのでしょうか? ★という事ですが、通常のOPENコマンドでイイと思いますよ。  まぁ、そのあとRENAMEしてしまえば、同じ事ですしね。 あと探し方が分からない様なので、一応HPも紹介しておきます。 【とほほのWWW入門】というページですが、 入門というだけあって結構使うところは細かく乗ってるので参考にしてみてください。

参考URL:
http://tohoho.wakusei.ne.jp/www.htm
aattmm
質問者

お礼

garyu77さま、回答ありがとうございます。 【とほほのWWW入門】を早速見てみました。 とても見やすくて、わかりやすいです。 これを参考にして、勉強していきたいと思います。 ありがとうございます。

その他の回答 (1)

  • garyu77
  • ベストアンサー率45% (30/66)
回答No.1

質問内容が微妙ですね… これって、レコード単位で処理しているのでしょうか? レコード単位で処理しているのだったら簡単ですよねぇ… まぁ、やり方は沢山あると思いますが… 一旦、テンポラリファイルを生成します。 ファイル(2)からレコード単位で読み込みをして、A行までをテンポラリに書き込みします。 ファイル(1)から必要なレコードを読み込み、テンポラリファイルへ書き込みします。 再びファイル(2)からレコード単位で読み込みし、EOFまでを書き込みします。 テンポラリファイルを、ファイル(2)として上書き保存したらできます。

aattmm
質問者

お礼

garyu77さま、回答ありがとうございます。 レコード単位で処理しています。 さらに初歩的な質問で悪いのですが、 テンポラリファイルはどのようにしたら生成できるのでしょうか? インターネット、本などで調べてみたのですが、わかりませんでした。回答お願いします。

関連するQ&A

  • 複数行にわたる処理

    こんばんは。perl初心者です。 どうしてもわからないので、どうかアドバイスよろしくお願いします。 一つのファイルに、以下のような3行で一組の塊がある場合、 <line_a>: aaaaaa <line_b>: BBBBBB <line_c>: cccccc <line_a>: aaaaaa <line_b>: bbbbbb <line_c>: cccccc ... <line_b>の行に文字列"BBBBBB"が含まれていたら、<line_a>の内容を"aaaaaa"から"AAAAAA"に置換してファイルを上書きしたいのですが、 どうやったらいいのでしょうか・・・。

    • ベストアンサー
    • Perl
  • EXCLEのマクロ データの絞り込み

    EXCELのマクロについてご教授願います。 数百件のデータで、C列は同じデータは複数あるが、A列に関して別のデータが入っている。B列もほぼ同じデータ ここで条件として C列が同じデータで、A列に特定のワードが入っているデータだけを残し、他のデータを削除するというマクロを組むことは可能でしょうか。 例えば下記のようなデータで、「abcd」だけ残し 他のデータは削除する    A         B        C 1  abcd      AAAAAA      BBBBBB 2  EFGA      AAAAAA      BBBBBB 3  hijk      AAAAAA      BBBBBB 4  lnms      AAAAAA      BBBBBB 5  abGG      PPPPPP      WWWWWW 6  EFTT      PPPPPP      WWWWWW 7  POII      PPPPPP      WWWWWW 2行目から4行目と6行目委から7行目を削除し以下のような データにする。常にA列のデータに ab というキーワードが 入っていて、Cが同じデータは、abが入っているデータのみ 残し他を削除する    A         B        C 1  abcd      AAAAAA      BBBBBB 5  abGG      PPPPPP      WWWWWW のみにする

  • ポスグレ レコードの比較

    ポスグレDBで以下のような二つのテーブルがあって レコード数、カラム等の構造も同じだったとして カラム1の値が二つのテーブルで同じであり カラム2~4のうちどれか一つでも違うレコードを抽出するSQLがわかりません。 下記の例で言うと抽出結果がスキーマA.テーブルAの「←」のレコードを抽出したいです。 スキーマA.テーブルA カラム1|カラム2|カラム3|カラム4| --------------------------- A |aaaaaaa|bbbbbb|ccccccc --------------------------- B |aaaaaaa|bbbbbb|ccccccc      ← --------------------------- C |aaaaaaa|bbbbbb|ccccccc      ← --------------------------- D |aaaaaaa|bbbbbb|ccccccc      ← --------------------------- E |aaaaaaa|bbbbbb|ccccccc スキーマB.テーブルB カラム1|カラム2|カラム3|カラム4| --------------------------- A |aaaaaaa|bbbbbb|ccccccc --------------------------- B |1111111|bbbbbb|ccccccc --------------------------- C |aaaaaaa|777777|ccccccc --------------------------- D |2222222|bbbbbb|8888888 --------------------------- E |aaaaaaa|bbbbbb|ccccccc よろしくお願いします。

  • エクセル/行選択の仕方を教えてください。

    はじめまして。 エクセルで、3行ごとに選択し、選んだ情報を列に移す作業をしたいのですが 1800行あり手で選択するのが大変です。 行いたい作業は以下の通りです。 A列 AAAAAA BBBBBB CCCCCC AAAAAA BBBBBB CCCCCC AAAAAA BBBBBB CCCCCC AAAAAA ↓ A列 B列 C列 AAAAAA BBBBBB CCCCCC AAAAAA BBBBBB CCCCCC AAAAAA BBBBBB CCCCCC 一行一行選択して列に移すのではなく選択できる方法がありましたら 是非ご教授ください。 よろしくお願いいたします。

  • エクセルの質問

    例えばメモ帳に、 aaaaaa,,111111,,222222 bbbbbb,,333333,,444444 あるとして、これを2行まとめてコピーしてエクセルに貼り付けると、 A1にaaaaaa,,111111,,222222 A2にbbbbbb,,333333,,444444 と入ってしまいます。 これを、 A1にaaaaaaB1に,,C1に111111D1に,,E1に222222 A2にbbbbbbB2に,,C2に333333D2に,,E2に444444 と貼り付けられる何か良い方法はありませんでしょうか? なぜ行はA1、A2とセルを分けて入るのに列は分かれてくれないのでしょうか? 分かる方是非教えてください。

  • Wordの文頭と文末

    例) AAAAA  BBBB  CCCCC  DDD BBBBBB  CCCCCCC  DDDDD BB    CCC  DDDDDDDD AAAAAAAA  BBB  CCCCC  DD 次の文をAは3行目(左揃え)、Bは10行目(左揃え)、Cは20行目(左揃え)、Dは35行目(右揃え) というようにそろえるにはどうやればよろしいですか?

  • shell diff の使い方について

    shellで差分をとりたいとおもっているのですが・・・ aaa.txtの中身 ※1 aaaaaa_xxx.c ※2 bbbbbb_yyy.c . . . bbb.txtの中身 ※1 aaaaaa.c ※2 bbbbbb.c . . . aaa.txt、bbb.txtそれぞれに200近くのファイル名のみが入っています。 両方のテキストファイルを読み込み、それぞれの※1と※1、※2と※2というふうに 差分を見ていきたいと思っています。行はすべてバラバラです。 差分を見たい対象になる基準は・・・ 例えば、※1であればaaaaaaの部分が同じなので。 (ディレクトリもそれぞれファイルごとにばらばらです) ついでに差分の行数も出力したいと考えています。 なにか良い方法を教えていただけませんでしょうか? shellでつくりたいと思っています。 どうかよろしくお願いいたします。

  • shシェルでのファイル操作

    初心者です。 shシェルであるファイルの先頭行及び最終行を削除して別ファイル(新規)に書き出したいのですが、何か良い方法があれば教えてください。 (例) 元ファイル(AAA)の内容 1234567 aaaaaaa bbbbbbb ccccccc 7654321 削除後のファイル(BBB)の内容 aaaaaaa bbbbbbb ccccccc

  • perlプログラム 外部複数ファイルの読み込み処理について

    perlプログラム 外部複数ファイルの読み込み処理について あるフォルダに T0001_05_01,T0001_05_02,T0001_05_03,…,T0001_05_31 という31個のファイルがあります。 それぞれのファイルは 下記のような 形式で記述されております。 (例 T0001_05_01のファイルの中身) 2010-05-01 00:00:00.000 N00001 AAAAAA 2010-05-01 00:00:00.108 N00018 BBBBBB 2010-05-01 00:00:10.305 N00002 AAAAAA 2010-05-01 01:00:10.966 N00008 CCCCCC … また、別のlist.txtに 下記のようなユニークなリストが入っております。 AAAAAA CCCCCC WWWWWW … このとき、list.txtの値が それぞれT0001_05_XXファイルの何行目に出力されているか 出力するperlプログラムを作成したい。 (出力結果イメージ:1ファイル化) T0001_05_01 1行目 2010-05-01 00:00:00.000 N00001 AAAAAA T0001_05_01 3行目 2010-05-01 00:00:10.305 N00002 AAAAAA … T0001_05_31 10行目 2010-05-31 03:00:00.999 N00400 AAAAAA T0001_05_01 4行目 2010-05-01 00:00:00.000 N00008 CCCCCC … perlプログラム知識がないものなので、このようなファイルの出力の仕方がわかりません。 教えていただけると助かります。

    • ベストアンサー
    • Perl
  • vbscriptでファイルの読み書き

    vbscript(ASP)勉強中です。 vbscriptを使用して、ファイルを読み込み、それを違うものに変えて新しいファイルを作成して書き込む。と言う流れができません。 読み込み、書き込み部分は分かるのですが、変換部分で悩んでいます。 例えば、読み込むファイルには、 [aaaaa] aiueo=あいうえお kakikukeko=かきくけこ [bbbbb] sasisuseso=さしすせそ となっており、それを下記のように変えたいのです。 abc あいうえお def かきくけこ ghi さしすせそ アルファベットとひらがなの前には、半角スペースが入ります。 これが50行くらいあるとして、一番ポピュラーな変換方法は どのようになるのでしょうか? よろしくお願いします。

専門家に質問してみよう