如何把memo中的行保存到同一文件?memo中的内容不断更新中(10分)

  • 主题发起人 主题发起人 ImageEn
  • 开始时间 开始时间
I

ImageEn

Unregistered / Unconfirmed
GUEST, unregistred user!
memo中的内容不断更新,我想把内容保存在同一个tem.txt文件中,想所有内容都保存,用savetofile只能保存当前内容,更抹掉以前的内容。
谢了
 
直接打开文件然后添加内容
var
f: textfile;

try
assignfile(f,'c:/tem.txt' );
if FileExists('c:/tem.txt') then
Append(f)
else
rewrite(f);
writeln(f, '2222');
finally
closefile(f);
end;
 
writeln(f, '2222');

这句用writeln(f, memo2.text);不知原来的行有没有断开?
 
var
f: textfile;

try
assignfile(f,'c:/tem.txt' );
if FileExists('c:/tem.txt') then
Append(f)
else
rewrite(f);
writeln(f, '2222');
finally
closefile(f);
end

 
原来的行指什么?
不太理解你的需求
你可以写个例子测试一下看是否是你想要的结果
不复杂啊
 
不断更新是指什么?
如果仅仅是在Memo末尾不断添加字符,那问题可以有答案
 
你是不是说,memo中的内容不断增加,要求同步的保存在一个文本文件里?
如果是这样的话,在memo的onChange事件中,写追加最新的行到文本文件就可以了
简单用语言描述一下就是:
onChange事件:
取得memo的最新一行(最后一行),追加到文本文件中
打开文本文件并且追加数据的方法很简单
 
建议你不用Memo保存
用TWriter TReader 用TWriter写 TReader读
TWriter写进去什么顺序 TReader读出来什么数据 有点像汇编里的PUSH POP
很方便//
用起来和标准的也差不多
 
这个是个用TWriter TReader播放列表的例子 Tnt 是 TntControls那套控件 当作没有就行了

Procedure TForm1.AMPListSave();
Var i:Integer;
FS:TFileStream;
Writer:TWriter;
Begin
If Form1.TntSaveDialog1.Execute then Begin
FS:=TFileStream.Create(Form1.TntSaveDialog1.FileName,fmCreate);
Writer:=TWriter.Create(FS,4096);
Writer.WriteInteger(AMPListCount);
For i:=0 to AMPListCount-1 do Writer.WriteWideString(AMPListArray.ArrayStr);
Writer.Free;
FS.Free;
End;
End;

Procedure TForm1.AMPListLoad();
Var i:Integer;
FS:TFileStream;
Reader:TReader;
Begin
If Form1.TntOpenDialog2.Execute then Begin
FS:=TFileStream.Create(Form1.TntOpenDialog2.FileName,fmOpenRead);
Reader:=TReader.Create(FS,4096);
AMPListCount:=Reader.ReadInteger;
FillChar(AMPListArray,SizeOf(AMPListArray),0);
SetLength(AMPListArray,AMPListCount+1);
For i:=0 to AMPListCount-1 do AMPListArray.ArrayStr:=Reader.ReadWideString;
Reader.Free;
FS.Free;
Form1.AMPListRefresh;
End;
End;
 
后退
顶部