• ベストアンサー

回数のカウント?

a.txtに下記の内容が書かれています。 ----------------start <--add--> 第2回 Bについて 第1回 Aについて -----------------end $title[0]に第3回のタイトルが入っているので、 s/<--add-->/<--add-->\r$title[0]/ で置換して、「第3回 Cについて」を入れたいのです。 ただ$title[0]には「第3回 」がないので、 --------- Cについて 第2回 Bについて --------- となってしまいます。 第2回の数字をとってきてプラス1して、、か どこかに回数を保存しといて、、 という風に考えているのですが、どうすればいいかわからず困っています。 どなたか方法をご存知の方よろしくお願いします。

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

  • ベストアンサー
  • okmotokun
  • ベストアンサー率59% (92/155)
回答No.2

open(FH,"a.txt"); @txt=<FH>; close FH; $txt[1]=~s/(第(\d+)回.+)/'第'.($2+1).'回 '.$title[0]."\n".$1/e; open(FH,">a.txt"); print FH @txt; close FH;

ok_pumpkin
質問者

お礼

ありがとうございました! おかげさまで無事解決できました。 eを使えばいいんですね! しかもつけたときの使い方もすごい勉強になりました。 感謝です!

その他の回答 (1)

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.1

なぜ、a.txtを開いて直接書き換えないのですか? そのほうがよっぽど早い。 もう少し具体的な詳細が無いと・・ 例)  講座のリストがある。  講義がすんだら、管理画面でチェックをし日時を入力する  リストに講座番号と日時をいれる。 とか・・

ok_pumpkin
質問者

お礼

説明不足で申し訳ありませんでした。 無事解決できました。 実際は、b.txtを開いてそこからタイトルリストを@titleに入れてから、 a.txtを開いて置換して編集するというものでした。 txtではなくhtmlコードをいじっていました。 次回から気をつけます。

関連するQ&A