我在用memeo控件时发现一个问题。
将memo中的内容保存到一个存在的文本文档时,它是以替换的方式保存的。
例如:Memo1.Lines.SaveToFile('temp.txt');
执行的结果是memo中的内容替换了temp.txt中的内容,如何才能以追加的方式把memo中的内容保存到temp.txt中呢?请高手指点,谢谢~~~

解决方案 »

  1.   

    采用最笨的方式:
    打开文件,至尾部,将MEMO中的内容一行行添加进去,关闭文件!
      

  2.   

    //添加文本和文件尾
    function AddToTXTFile(SourceFile:String;M:TMemoryStream):Boolean;
    var
    Source: TFileStream;
    begin
      Source:= TFileStream.Create(SourceFile,fmOpenReadWrite);
      try
        Source.Seek(0,soFromEnd);
        Source.CopyFrom(M,0);
      finally
        Source.Free;
      end;
      Result:= True;
    end;procedure TForm1.Button1Click(Sender: TObject);
    var M:TMemoryStream;
    begin
      M:=TMemoryStream.Create;
      try
      Memo1.Lines.SaveToStream(M);
      if OpenDialog1.Execute then
        if AddToTXTFile(openDialog1.FileName,M) then
          showmessage('OK');
      finally
      M.Free;
      end;
    end;
      

  3.   

    比如有两个应用程序A和B,其中A中实现了一个接口IMyInterface, 在程序B中能否得到 
    这个接口,并且可以操作它? IMyInterface不是AutoComobj,而是自己定义的: 
    IMyInterface = Interface 
    [classid........]
      procedure a; 
      procedure b; 
    end; 
      

  4.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      FileList:TStringList;
    begin
      FileList:=TStringList.Create();
      FileList.LoadFromFile('e:\ji\temp.txt');
      FileList.AddStrings(Memo1.Lines);
      FileList.SaveToFile('e:\ji\temp.txt');
      FileList.Free;
    end;
      

  5.   

    用 流 的方法:procedure TForm1.Button1Click(Sender: TObject);
    var
      Stream: Stream;
      SL: TStringList;
      i: integer;
    begin
      Stream:=Stream.Create('e:\ji\temp.txt',fmcreate or fmopenwrite);
      try
        SL := TStringList.Create;
        SL.loadfromstream(stream);
        for i := 0 to memo1.lines.count -1 do
          SL.Append(Memo1.Lines[i]);
        SL.Savefromstream(Stream);
        SL.free;
      finally
        Stream.Free;
      end;
    end;