我正在使用lazarus,我希望在程序关闭时保存为txt文件。但每次重新打开程序时,它都会覆盖txt文件中之前的内容。可以写入下一行,甚至每次都创建一个不同的txt文件。这就是我所拥有的:
var
...
s: TStringList;
s:= TStringList.Create;
s.Add(datetostr(now));
s.SaveToFile(datetostr(now)+'.txt');
s.Free;
但我没有给我一个错误
答案 0 :(得分:3)
您需要做的就是以附加模式打开文件,然后添加文本。它会将新数据放在文件的末尾:
AssignFile(tfOut, C_FNAME);
try
// Open for append, write and close.
append(tfOut);
writeln(tfOut, 'New data for text file');
writeln(tfOut, 'New informtion should be at the end of the file.');
CloseFile(tfOut);
except
on E: EInOutError do
writeln('File error. Elaboration: ', E.Message);
end;
答案 1 :(得分:0)
使用tstringlist的另一种方法是:
s:TStringList;
s:= TStringList.Create;
s.loadfromfile('myfile.name');
s.Add(datetostr(now));
(或s.text:= s.text + lineending + datetostr(now))
s.SaveToFile('myfile.name');
s.Free;