初歩の初歩、テキストカウンターを作成しようとして
open (CNT,"+<cnt.dat");
$cnt = <CNT>;
close(CNT);
chomp $cnt;
$cnt = $cnt + 1;
print CNT $cnt;
close (CNT);
と上記のようなプログラムを書いたのですが、
ファイルに書き込みがなされません。
多少わかりにくい書き方になるかとは思いましたが、
open (CNT,"<cnt.dat");
$cnt = <CNT>;
close(CNT);
open(CNT,">$cntfile");
chomp $cnt;
$cnt = $cnt + 1;
print CNT $cnt;
close (CNT);
という風に書きかえてみました。
こちらですと、書き込みはされるのですが何故かカウントが
2つずつカウントされてしまうんです。
プログラムとしておかしな点というのが思い当たらずお手上げです。
ご教授下さい、お願いします。
No.2ベストアンサー
- 回答日時:
カウンタを書き出す前にはcloseするのではなく、
seekでファイル操作の位置をリセットしてやります。
-------------------------------------------------------
open(CNT,"+<cnt.dat");
$cnt = <CNT>;
chomp $cnt;
$cnt++;
seek(CNT, 0, 0);# 位置をCNTの先頭に戻す。
print CNT $cnt;
close(CNT);
-------------------------------------------------------
このカウンタの場合は文字列の長さが減らないので大丈夫ですが、
読みこんだものが「aaaaaa」の場合に「bbb」を書きこむと、
「bbbaaa」のように混ざったものが残るので注意。
print CNT "$cnt\n";
のように改行も一緒に出力してやると少し安心かも。
カウントが2つずつアップされてしまうのはどうやら
ブラウザの設定がおかしかったようです。
頂いた注意を元にプログラムを組みましたところ、成功致しました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 配列の勉強をしています。使用する変数の意味、検索条件の書き方が難しいです。 2 2022/09/15 14:06
- Visual Basic(VBA) VBA Bookの表示、非表示 1 2022/09/16 20:44
- Excel(エクセル) マクロ(データ取得と転記)について教えてください 3 2022/12/24 12:18
- Visual Basic(VBA) vbaで色付けされたセルを除外したいのですが 5 2023/01/28 17:22
- Visual Basic(VBA) Dateserialで データ抽出 2 2022/06/26 21:07
- Visual Basic(VBA) VBA初心者です。 VBAで行単位で条件付き書式の色をカウントしたいです。 大量のデータがあるExc 3 2022/06/08 10:02
- Visual Basic(VBA) VBA初心者です。 VBAで行単位で条件付き書式の色をカウントしたいです。 大量のデータがあるExc 3 2022/06/08 10:00
- その他(プログラミング・Web制作) atcoder python コードへの助言 2 2022/08/12 15:31
- Visual Basic(VBA) 日付の計算方法 2 2022/07/01 23:35
- JavaScript 画像の表示位置 3 2022/12/23 08:25
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
巨大ファイルの行をを逆順に並...
-
close()で例外が投げられる理由
-
オープンしたファイルで行の連結
-
perlのflock関数でロックをかけ...
-
ハッシュにファイルハンドル
-
where can I buy snowbord in t...
-
batファイルでrenameができませ...
-
awkスクリプトでダブルクォーテ...
-
バッチファイルの作り方(CSV→...
-
ディレクトリの判別
-
csvファイルの横方向への改行に...
-
VBAでCSVファイルの特定行を書...
-
C言語で特定の行を抽出する方法...
-
VBAで巨大なファイルの途中から...
-
動かなくなったのでJavaソース...
-
Perlの変数に文字数制限(容量...
-
Perl<->Oracle間での文字化けに...
-
VBA テキストファイルを読み取...
-
perlでの出力先設定
-
【エクセル】改行無しテキスト...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
close()で例外が投げられる理由
-
perlのflock関数でロックをかけ...
-
改行コードが勝手に
-
open中のファイルをrename
-
ファイルから読み込んだ文字を
-
perlでファイル内の文字列を置...
-
AutoCADのスクリプト
-
Perl で syntax error
-
perlを用いた特定文字列間の抽...
-
テキストファイルの本文中に行...
-
Perlで他サイトの情報を取得し...
-
オープンしたファイルで行の連結
-
PICでFatFsでオープンした内容...
-
パスワードを外部ファイルから...
-
Perl:ファイルハンドルをスカラ...
-
巨大ファイルの行をを逆順に並...
-
ハッシュにファイルハンドル
-
Perlのファイルオープン時...
-
パイプをopenして/usr/bin/grep...
-
telnet接続
おすすめ情報