- ベストアンサー
ファイル操作について、テキストファイルの書き換え
よろしくお願いします。 データファイル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は未経験で入門書を読んでいるレベル)
- みんなの回答 (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; ------------------------------------------------------
その他の回答 (1)
- snowize
- ベストアンサー率27% (68/245)
そのままPERLを勉強しつづければ、なんてことなく解決すると思います。C言語だとだるいかもしれません。 具体的にどうやるのかを説明してもよいのですが、失礼ながら、ご自身でやり方が分からないという時点で、説明しても多分分からないと思いますので割愛。 PERLの文字列処理は楽ちん、 C言語の文字列処理はゲロゲロと心得ておくとお得ですよ。
お礼
C言語と比較したときのperlの利点の一つがわかりました。 ありがとうございました。
お礼
サンプルプログラムありがとうございました。 何がどういう動きをしているのか調べてperlを学習していきます。