lazarus / delphi (pascal) - 写入 txt 文件,下次不覆盖
lazarus / delphi (pascal) - writing to txt file without overwriting next time
我正在使用 lazarus,我想将程序关闭时的信息保存到 txt 文件中。但每次我重新打开程序时,它都会覆盖 txt 文件中之前的内容。每次写入下一行甚至创建不同的 txt 文件都可以。这就是我所拥有的:
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.Add( datetostr( 现在 ) );
( 或 s.text := s.text + lineending + datetostr( now ) )
s.SaveToFile('myfile.name');
s.Free;
我正在使用 lazarus,我想将程序关闭时的信息保存到 txt 文件中。但每次我重新打开程序时,它都会覆盖 txt 文件中之前的内容。每次写入下一行甚至创建不同的 txt 文件都可以。这就是我所拥有的:
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.Add( datetostr( 现在 ) );
( 或 s.text := s.text + lineending + datetostr( now ) )
s.SaveToFile('myfile.name');
s.Free;