如何在Delphi中附加到文本文件?

时间:2018-08-12 11:52:19

标签: file delphi text

我正在设计一个程序,该程序可将数据写入文本文件并将其存储在文本文件中。问题是,每当我在文件中输入新数据时,旧数据就会被清除,并且只有一个条目(行)在那里。我最初是每次都说Rewrite(tFile),但现在使用布尔值来检查文本文件是否已被重写。我仍然遇到同样的问题。

    begin
    AssignFile(tNotifications, 'Notifications.txt');
    if bRewritten = False then
      begin
        Rewrite(tNotifications);
        bRewritten := True;
      end;
     Writeln('test');
     CloseFile(tNotifications);

3 个答案:

答案 0 :(得分:5)

AssignFile()之后,您必须选择 Reset 来读取文件,或者如果要写入文件,是否要 Append Rewrite 文件。

如果您要保留文件中的现有数据并仅附加其他数据,则可以调用 Append()

如果要用新数据替换文件中的现有数据,请致电 Rewrite

我不知道布尔bRewritten的用途是什么,我希望您将其设置为程序中的其他位置,以作为文件写入例程调用Append()ReWrite()


answer to an earlier question中,建议使用TStringList及其SaveToFile()方法。如果要使用TStringList并要追加,则首先读取文件(StringList.ReadFromFile()),将新的字符串添加到StringList中,最后保存(StringList.SaveToFile())。要重写现有文件,您只需在将字符串添加到StringList并保存之前忽略读数。

我支持使用TStringList作为现代且更方便的解决方案。

答案 1 :(得分:2)

旧式solution(您是否查看过See Also帮助中的AssignFile部分?):

AssignFile(tNotifications, 'Notifications.txt');
Append(tNotifications);
Writeln(tNotifications, newtext);

对于新的Delphi版本(help):

add IOUtils to uses
...
TFile.AppendAllText('Notifications.txt', newtext);  

答案 2 :(得分:0)

或检查“追加”。顺便说一句:AssignFile可以用更正确的Assign代替。