我在用memeo控件时发现一个问题。
将memo中的内容保存到一个存在的文本文档时,它是以替换的方式保存的。
例如:Memo1.Lines.SaveToFile('temp.txt');
执行的结果是memo中的内容替换了temp.txt中的内容,如何才能以追加的方式把memo中的内容保存到temp.txt中呢?请高手指点,谢谢~~~
将memo中的内容保存到一个存在的文本文档时,它是以替换的方式保存的。
例如:Memo1.Lines.SaveToFile('temp.txt');
执行的结果是memo中的内容替换了temp.txt中的内容,如何才能以追加的方式把memo中的内容保存到temp.txt中呢?请高手指点,谢谢~~~
打开文件,至尾部,将MEMO中的内容一行行添加进去,关闭文件!
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;
这个接口,并且可以操作它? IMyInterface不是AutoComobj,而是自己定义的:
IMyInterface = Interface
[classid........]
procedure a;
procedure b;
end;
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;
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;