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