lazarus / delphi(pascal) - 写入txt文件而不会在下次覆盖

时间:2016-06-23 16:40:15

标签: 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;

但我没有给我一个错误

2 个答案:

答案 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;