DOBON.NET DOBON.NETプログラミング掲示板過去ログ

テキストファイル(*.txt)の書込みについて

環境/言語:[XP,VB6]
分類:[VB6以前]

複数行あるテキストファイルの任意の1行を更新したいと思っています。
現在、RANDOMモードでOPENしていてPutで書込みしていますが変な位置に書き込まれます。Put関数で指定する書込み位置は「任意の1行」と言うことでしょうか?
また任意の行数目の先頭から1行更新できる方法があればご教授お願いします。
ファイルの長さが変わるような場合、その方法はうまくいかないでしょう。

ではどうすべきかというと、やはりすべての行を読み込んで配列か何かに退避してファイルを閉じ、
任意の行を変更して、再度ファイルを開いて退避した配列か何かを上書きすることになるでしょう。
返信ありがとうございます。
「ファイルの長さが変わるような場合」と言うのは可変長のファイルでしょうか?
固定長のファイルの場合はやはりOutputモードで書き込むしかないのでしょうかね。
seek関数やLoc関数で取得できる書込み位置が各レコードの先頭であればうまくいきそうなのですが・・・。
もう少し自分でも調べて見ます。
> 「ファイルの長さが変わるような場合」と言うのは可変長のファイルでしょうか?

行数が固定であっても、1行の長さが一定でなければ可変長のファイルになってしまいますよね?

ごく一般的なOSにおける「ファイル」は「紙テープ」のようなもので、「行」の概念を持ちません。

「紙テープ」に「改行コード」を書きこんだ位置を改行位置とみなす、という伝統的な申し合わせで運用されているだけです。

例えば「行末に余分な空白が付いても良い」という前提で行の長さを固定しない限り、「行頭に seek して上書き」というシナリオはうまくいきません。
何とか解決できました。
ありがとうございました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板