lazarus/delphi(pascal)-写入txt文件而无需下次覆盖
我正在使用lazarus,我想在程序关闭时将信息保存到txt文件中。但每次我重新打开程序,它都会覆盖以前在txt文件中的内容。每次都可以写入下一行,甚至创建不同的txt文件。这就是我所拥有的:lazarus/delphi(pascal)-写入txt文件而无需下次覆盖,pascal,lazarus,freepascal,delphi,Pascal,Lazarus,Freepascal,Delphi,我正在使用lazarus,我想在程序关闭时将信息保存到txt文件中。但每次我重新打开程序,它都会覆盖以前在txt文件中的内容。每次都可以写入下一行,甚至创建不同的txt文件。这就是我所拥有的: var ... s: TStringList; s:= TStringList.Create; s.Add(datetostr(now)); s.SaveToFile(datetostr(now)+'.txt'); s.Free; 但是我给了我一个错误你需要做的就是以附加模式打
var
...
s: TStringList;
s:= TStringList.Create;
s.Add(datetostr(now));
s.SaveToFile(datetostr(now)+'.txt');
s.Free;
但是我给了我一个错误你需要做的就是以附加模式打开文件,然后添加文本。它将把新数据放在文件末尾:
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;
使用tstringlist的另一种方法是: s:TStringList s:=TStringList.Create s、 loadfromfile('myfile.name') s、 添加(datetostr(现在)) (或s.text:=s.text+lineending+datetostr(现在)) s、 SaveToFile('myfile.name')
s、 免费的 打开一个文件流,搜索到底,保存到流如果你有一个错误,你可以看到它是什么。我们不能。我们要猜吗?你看到错误信息了吗?日期作为字符串可能有路径分隔符。为什么我们需要猜测。我检查了所有编译器错误消息,但找不到“错误”消息。根据您的区域设置,DateToStr结果中可能有斜杠,这将使其作为文件名无效。改用FormatDateTime,并确保结果是正确的文件名。在你的格式中也要使用小时、分钟和秒,这样你就可以一天运行多次。如果op的应用程序是VCL应用程序,则不会。