• ベストアンサー

ファイル操作について、テキストファイルの書き換え

よろしくお願いします。 データファイルAからデータを取得して、テキストファイルBの内容の一部を取得したデータで書き換えるという操作を行うプログラムを作りたいです。 具体的には、 データファイルA[A.txt]の中身 111 222 333 444 テキストファイルB[B.txt] 文字列1="123" 文字列2="234" 文字列3="345" 文字列4="456" というような二つのファイルを読み込み、B.txtの""で囲まれた部分を、A.txtで取得したデータで置き換えるような操作を行いたいのですが・・。 使用する言語としてはスクリプト言語であるperl、もしくはプログラム作成経験があるCを使用しようと思っています。(perlは未経験で入門書を読んでいるレベル)

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

  • ベストアンサー
  • sample_
  • ベストアンサー率76% (20/26)
回答No.2

こんな感じでいかが? 何がどうなっているかは、調べてみてください! ------------------------------------------------------ use strict; use warnings; open (my $fh1, "<", "A.txt") or die "$!"; chomp(my @data_a = <$fh1>); close $fh1; open (my $fh2, "+<", "B.txt") or die "$!"; my @data_b = <$fh2>; for(my $i=0; $i<@data_b; $i++){ $data_b[$i] =~ s/".+"/"$data_a[$i]"/; } seek $fh2, 0, 0; truncate $fh2, 0; print $fh2 @data_b; close $fh2; ------------------------------------------------------

watashino7
質問者

お礼

サンプルプログラムありがとうございました。 何がどういう動きをしているのか調べてperlを学習していきます。

その他の回答 (1)

  • snowize
  • ベストアンサー率27% (68/245)
回答No.1

そのままPERLを勉強しつづければ、なんてことなく解決すると思います。C言語だとだるいかもしれません。 具体的にどうやるのかを説明してもよいのですが、失礼ながら、ご自身でやり方が分からないという時点で、説明しても多分分からないと思いますので割愛。 PERLの文字列処理は楽ちん、 C言語の文字列処理はゲロゲロと心得ておくとお得ですよ。

watashino7
質問者

お礼

C言語と比較したときのperlの利点の一つがわかりました。 ありがとうございました。

関連するQ&A