初歩の初歩、テキストカウンターを作成しようとして
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で大容量CSVのsort方法につ...
-
awkスクリプトでダブルクォーテ...
-
window.open でのファイル指定方法
-
ListBoxのデータを高速でファイ...
-
C言語で特定の行を抽出する方法...
-
ReadLineでの読み出し行を指定する
-
VBAでCSVファイルを途中行まで...
-
パスから最後のディレクトリだ...
-
ヒアドキュメントの書き方
-
Edge スクレイピング
-
ExcelをCSV書き出す場合のシー...
-
CSVデータの編集の際の重複チェ...
-
Perlで特定行から特定行までを...
-
配列の中に重複文字列があるか...
-
utf-8のCSVをshift_jisに変換し...
-
python renameについて
-
openした後、closeしないでプロ...
-
vba dir の相対パス
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
close()で例外が投げられる理由
-
perlのflock関数でロックをかけ...
-
改行コードが勝手に
-
open中のファイルをrename
-
ファイルから読み込んだ文字を
-
perlでファイル内の文字列を置...
-
AutoCADのスクリプト
-
Perl で syntax error
-
perlを用いた特定文字列間の抽...
-
テキストファイルの本文中に行...
-
Perlで他サイトの情報を取得し...
-
オープンしたファイルで行の連結
-
PICでFatFsでオープンした内容...
-
パスワードを外部ファイルから...
-
Perl:ファイルハンドルをスカラ...
-
巨大ファイルの行をを逆順に並...
-
ハッシュにファイルハンドル
-
Perlのファイルオープン時...
-
パイプをopenして/usr/bin/grep...
-
telnet接続
おすすめ情報