NI製品ディスカッション

キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

テキストファイルに書き込む際の行数指定について

解決済み
解決策を見る

daqで収集したデータをテキストファイルに書き込んでいるのですが、ここで問題があります。

書き込む行数の上限値を指定してその行数に達したら、先頭を消去して末尾に書き込み続けるというの操作を実行したいのですが、そのような機能が見つかりません。

アドバイスいただけたらありがたいです。

0 件の賞賛
メッセージ1/3
282件の閲覧回数
解決策
トピック作成者kazu56が受理

ファイルポインタでファイルの末尾(ファイルサイズ)は変更できても、先頭は変更できないですね。

 

書き込み頻度が低く、ファイルサイズがあまり大きくないのなら、全部読んで先頭行を捨てて末尾に追加して上書き。まあ、メモリ上に全データを載せられるならそこで操作して毎回上書きしても同じです。

 

固定長フィールド(1個のデータの文字数が固定)のファイルなら、文字数(バイト数)で改行位置がわかるので、ファイルポインタを動かして一部(1行?)を上書きすることはできそうです。最大行数に達したら先頭に戻って上書きし続ければ必要なデータは残ります(ファイルの最後尾を変えないよう注意)。ほとんどの場合、最新データの後に最古のデータが並ぶので、閲覧の際に入れ替える必要があります。

 

0 件の賞賛
メッセージ2/3
178件の閲覧回数

J.H.Watson様

 

ご回答ありがとうございます。

色々試行錯誤してみます。

0 件の賞賛
メッセージ3/3
175件の閲覧回数