回 帖 发 新 帖 刷新版面

主题:请问有什么方法不覆盖内容的

之前发了个帖子说如何把内容保存到TXT文件里,我现在基本可以做出来,但我的做法有点问题,就是之后的新内容,会覆盖掉TXT里面的久内容,下面是我的程序

function TMessageSendForm.SaveMsgData(MsgData: array of string): Boolean;
var
  FStr: TStringStream;
  FMemo: TMemoryStream;
  i: Integer;
  str: string;
begin
  Result := False;

  for i := 0 to Length(MsgData) - 1 do
  begin
    FStr := TStringStream.Create(str);
    FStr.WriteString(MsgData[0] + '..');
    FStr.Position := 0;
    FMemo := TMemoryStream.Create;
    FMemo.CopyFrom(FStr, FStr.Size);
    FMemo.SaveToFile('c:\a.txt');
    Result := True;
    FMemo.Free;
    FStr.Free
  end;
end;

通过一个循环我想把数组MsgData从MsgData[0]一直到MsgData[i]的数写进TXT,但由于这种方法会覆盖之前的内容,所以在TXT文件中只出现MsgData[i]的内容,请问有什么方法可以不覆盖呢

回复列表 (共1个回复)

沙发

不尽在SaveMsgData里面通过循环写入,而且调用SaveMsgData这个方法的地方也是处在循环中

for i := 0 to List1.Count - 1 do
  begin
    PData := PMsgData(List1.Items[i]);
    MsgData[0] := TDate;
    MsgData[1] := TTime;
    MsgData[2] := PData^.CustName;
    MsgData[3] := PData^.MobPhone;
    MsgData[4] := PData^.MsgData;

    if (PData^.IsFailed = 1) then
    MsgData[5] := '发送成功'
    else
    if (PData^.IsFailed = 0) then
    MsgData[5] := '发送失败';

    flag := SaveMsgData(MsgData);        //调用SaveMsgData();
  end;


这个问题怎么解决好啊,高手快出现哦

我来回复

您尚未登录,请登录后再回复。点此登录或注册