写入文本文件的中间

时间:2013-06-09 16:57:30

标签: delphi text-files

我使用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的位置并写下新的止损值。这样我就不需要重写文件中的所有内容。

1 个答案:

答案 0 :(得分: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;