- PR -

テキストファイルの上書きについて

1
投稿者投稿内容
mura
会議室デビュー日: 2003/08/13
投稿数: 9
投稿日時: 2006-10-12 19:49
=====test.txt====
1行目:2006/10/12 10:30,XXXXXXXX
2行目:2006/10/12 10:32,XXXXXXXXXX
3行目:2006/10/12 10:35,XX
4行目:2006/10/12 10:40,XXXXXX
=================

上記のようなテキストファイルがあります。
1行目に
2006/10/12 10:42,XXX
という内容を上書きする方法を教えて下さい。
ログファイルとして使用することを考えていて
ある件数に達した場合、古いデータから
消えていくファイルとしたいのです。
よろしくお願いします。
[VB.NET 2003]
甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2006-10-12 20:11
#またかorz

一般にファイルはバイトストリーム(1バイトを最小単位として連続して並んでいるデータ)を管理する機能しか提供しません。1バイト単位で置き換えることは可能ですが、間にデータを挿入することは出来ません。それ以上の事、例えば今回のように1行を置き換える為には、1行を置き換えるための仕組みをファイルに持たせなくてはなりません。今回の例だと全ての行を同じ文字数に揃えるとか、あるいはテキストファイルとして格納することを諦める事になります。

一般的なログシステムでは古いログを上書きするような事はしません。一日分を1ファイルなどとし、複数のファイルに保存してゆきます。古いログを消したい場合には、もっとも古いファイルを消すようにしますね。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-10-12 20:14
引用:

muraさんの書き込み (2006-10-12 19:49) より:

上記のようなテキストファイルがあります。
1行目に
2006/10/12 10:42,XXX
という内容を上書きする方法を教えて下さい。


StreamReader などで一気に読み込んで、一気に書き出すのが基本です。
ファイルで考えるのではなく、文字列で考えれば難しくないと思います。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
mura
会議室デビュー日: 2003/08/13
投稿数: 9
投稿日時: 2006-10-12 21:20
甕星さん、じゃんぬねっとさん
ありがとうございます。

複数のファイルを使用して、ログをとる
方法でいきたいと思います。
R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2006-10-13 08:54
引用:

muraさんの書き込み (2006-10-12 21:20) より:

複数のファイルを使用して、ログをとる
方法でいきたいと思います。


ログを取るという目的であれば、この方法が一番自然ですね。
一つのファイルをFIFOする手法は、あまり聞いたことないです。
_________________
R・田中一郎 -  R.Tanaka.Ichiro’s Blog
1

スキルアップ/キャリアアップ(JOB@IT)