• ベストアンサー

回数のカウント?

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

  • OpenOfficeCalcでセルの変化した回数をカウントするには

    OpenOfficeCalcでセルの変化した回数をカウントするには どうすればいですか? 例えば、 A1セルの数字が1,3,5,0と変化した場合 B1に4と表示させたいのです。 多分マクロじゃないとダメですよね? あと、大きくなった回数と小さくなった回数が表示されると なおよいです。 上記の場合だとB1に3、C1に1ですね。

  • 数字のカウント

      A   B   C 1  1  54   7 2  0  30   7 3  1  23   7 4  2   1   7 例えばこのような表で、B列の数字はひと月たったらプラス1されようにしてA列には、B列の数字が60になったらプラス1されるようにしたいのです。又、B列の数字は60になったら1からカウントされるようにしたいのですが、教えてください。お願いします。 (A列、B列は任意の数字でC列は日付関数で月だけを表示。)

  • エクセルで、特定の数字が出た回数をカウントする方法はありますでしょうか??

    いつも、いつもお世話になっております^ ^ エクセルで、特定の数字が出た回数を カウントする方法はありますでしょうか?? データ数が10000以上あるのですが、 その中から特定の数字が出た回数をカウントし、 別のセルにその数値を表示したいと思っております。 例)データ(Aセルに入力)   4   5   2   7   5   5   3   5  としましたら、  5と2を特定の数字とし、  Bセルに5と2が出た回数をカウントする方法は、  ありますでしょうか??  2が1回出現、  5が4回出現していますので、  この場合はB1セルに5と表示できればと思っております。 どなたか知識を分けていただければ幸いです。 よろしくお願いいたしますm(_ _)m

  • EXCEL連続した回数のカウント

    エクセル初心者です。 連続した数字の回数のカウントの仕方が分からず困っております。 A列に0と1が50個並んでいます。 50個の0と1はその並び順が変化します。 1が先頭から5個以上、連続して並んだ時に、その1が連続した回数を特定のセル(例えばB1)に表示するようにしたいのです。 下の例1ではA3から1が8個連続していますので、B1のセルに8が入るようにしたいのです。 並びが変わりますので、先頭のA3が0の例2や、1が5個以上連続しない例3の場合は、B1のセルは空白のままになるようにしたいのです。 1が先頭のA3から5個以上連続した時だけ、その先頭から連続した回数(個数)を数えるようにしたいのです。 どうぞよろしくお願いします。 (例1)   A列   B列   C列・・ 1行 2行  3行 1 4行 1 5行 1 6行 1 7行 1 8行 1 9行 1 10行 1 11行 0 12行 0 ・ (例2)   A列   B列   C列・・ 1行 2行  3行 0 4行 1 5行 1 6行 1 7行 1 8行 1 9行 1 ・ (例3)   A列   B列   C列・・ 1行 2行  3行 1 4行 1 5行 1 6行 1 7行 0 8行 0 ・

  • クイックソート キー比較回数をカウント

    クイックソートでキー比較回数をカウントする。 以下のように書いたのですが、 22行目(C++;)の状態ではまだ何かが足りないらしいのですが、何が足りないのか教えてください。 /* ここからプログラム */ #include <stdio.h> #define N 10 /* 配列aの要素数 */ static int a[N] = { 7, 20, 1, 18, 9, 15, 24, 10, 3, 12}; int main() { __int i, j; /* ループカウンタ */ __int temp; /* 交換用 */ __int pivot; /* 基準値 */ __int C = 0; /* キー比較回数C */ __int M = 0; /* データ置換回数M */ __i = 0; /* iを先頭要素番号 */ __j = N - 1; /* jを末尾要素番号 */ __pivot = a[j / 2]; /* 任意の要素を取り出し基準値 */ __while (i <= j){ ____C++; /* 22行目,キー比較回数カウント */ ____while (a[i] < pivot) /* a[i] >= pivot が見つかるまで */ ______i++; /* iを増加 */ ____while (a[j] > pivot) /* a[j] <= pivot が見つかるまで */ ______j--; /* jを減少 */ ____if (i < j && a[i] != a[j]) { /* i < j かつ a[i]≠a[j] ならば */ ______temp = a[i]; /* a[i]とa[j]を交換 */ ______a[i] = a[j]; ______a[j] = temp; ______M++; /* データ置換回数回数カウント */ ______i++; /* iを増加 */ ______j--; /* jを減少 */ ____} ____if (i == j || a[i] == a[j]){ /* i = j かつ a[i] = a[j] ならば */ ______i++; /* iを増加 */ ______j--; /* jを減少 */ ____} __} /* ここから結果表示 */ __for (i = 0; i < N; i++) ____printf("%3d ", a[i]); __printf("\n"); __printf(" キー比較回数 : %3d回\n データ置換回数: %3d回\n", C, M); /* ここまで結果表示 */ __return 0; } /* ここまでプログラム */

  • エクセル カウントの逆?

    A 3 0 B 1 1 C 2 1 D 0 3 (実際には下・右方向にまだ数字があります) とあった場合、その下に   A B   A C   A D   B D   C D   C という風に書き出す方法はありませんでしょうか? よろしくお願いします

  • 電車の回数券

    A駅→B駅→C駅があるとします。 普段はB駅→A駅間とB駅→C駅間を使うのでそれぞれの区間の回数券を持っていますが、月に何回かA駅→C駅間まで行くことがあります。 その場合A駅でA駅→B駅間の回数券で入り、C駅で降りるときに駅員のいる出口からA駅→B駅間とB駅→C駅間の回数券を見せて出ることは可能ですか? それとも一回B駅で出てまた入場しなければならないのですか? A駅→C駅間を通しで買うと100円ほど値段が高くなるし、たくさんの種類の回数券を持つのは大変なので…。 教えて下さい。よろしくお願いします。

  • 通話回数の計算についての質問です

    下の表はある月のA~Dの4人の間の通話回数の一部を示したものである。BとDの通話回数は何回か?       A B C D 計 A       20 30 20 70 B 20 60 C 30 65 D 20 45 計 70 60 65 45 という表から BとCの通話回数=a BとDの通話回数=b CとBの通話回数=c CとDの通話回数=d DとBの通話回数=e DとCの通話回数=f として a+b=40 c+d=35 e+f=25 c+e=40 a+f=35 b+d=25 というところまではわかったのですがここからどうやってBとDの間の通話回数を計算するのかわからず困っております。 ぜひご回答のほうよろしくお願いいたします。

  • 連続するローソク足をカウントしたい エクセル

    だいぶ探しましたがわかりませんでした。みなさま宜しくお願いします。 データーは下記のとおりです。 セルA2=始値 セルB2=終値 セルC2=(A2-B2) 目的:-(あるいは+)数字の連続数のカウント C列には計算後の数値をいれました。 ただ、休日により一切値動きのない連続データもはいってまして、まずそれを削除したいのです。 くわえて、所々にも値動きのないデーターがありますのでそれも削除したいです。 少なくとも10分×6×24×一年分ありますので、手作業ではとても…。 そのうえで C列の+数字(正)-数字(負)それぞれの数 正または負の連続回数と連続回数別の数(例えば2連続が何回、3連続が何回みたいな) お手数おかけしますが、どなたさまかよろしくお願いいたします。

  • ユーチューブ視聴回数のカウント条件は

    こんにちは、今日もよろしくお願いします。 ユーチューブ視聴回数のカウントを1回行う条件はどうなっているのですか? 考えられるカウント条件を書いてみました。 A)一寸でも視聴すれば1回と数える B)半分以上視聴すれば1回と数える C)すべて視聴すれば1回と数える D)その他 もう一つ、自分で試聴した場合はカウントされますか。 ちょっと気になったので質問しました。よろしくお願いします。