1

Delphi 7.0 を使用しており、テキスト ファイルの途中に書き込む必要があります。私のプログラムが作成するテキスト ファイルの例を次に示します。

~V

VERS.  2.0: CWLS LOG ASCII STANDARD - VERSION 2.0

WRAP.  NO : One line per depth step

~W

STRT.Ft 10000 : Start Depth

STOP.Ft  11995 : Stop Depth

STEP.Ft 5 : Step

... A bunch of data follows.

ここで、最初に値をテキスト ファイルに書き込むときに、上記の例の STOP 値 11995 のファイル位置を覚えておきたいと思います。しばらくするとデータが変更されるので、11995 の位置に移動して新しいストップ値を書きたいと思います。そうすれば、ファイル内のすべてを書き直す必要はありません。

4

1 に答える 1

3

標準の Pascal ファイル I/O では、ファイル内のデータの読み取り、書き換え、または追加のみを行うことができます。
ファイルの特定の位置のデータを変更したい場合は、TFileStream を使用できます。

var
  f:TFileStream;
  PositionStr:String;
  PositionValue:Integer;
begin
  f := TFileStream.Create('filename.log',fmOpenReadWrite);
  PositionValue := 200000; // new STOP Position 
  PositionStr := IntToStr(PositionValue);
  f.Seek(100,soFromBeginning); // Data will be overwritten from position 100
  f.WriteBuffer(PositionStr[1], length(PositionStr));
  f.free;
end;  
于 2013-06-09T18:10:46.347 に答える