delphi 写入到txt的问题

我现在用delphi写个程序,需要将Memo1.Lines里面的字符串存到一个文本文档里,如:memo1.lines.savetofile('test.txt');但是这... 我现在用delphi 写个程序,需要将 Memo1.Lines里面的字符串存到一个文本文档里,如:memo1.lines.savetofile('test.txt'); 但是这样会有个问题,就是我在memo中写入一个字符串('AAA'),再次运行程序,写入('BBB'),test.txt文本中就只有BBB了,也就是savetofile不是将文本写入文件,而是保存字符串再替换test.txt文件,现在我不想替换文件,想要的结果是('AAABBB');各位帮帮忙。 展开
 我来答
thomasdai
2012-03-26 · TA获得超过189个赞
知道小有建树答主
回答量:196
采纳率:0%
帮助的人:220万
展开全部
这种情况下,你不能直接使用memo1.lines.savetofile('test.txt');

而是应该新创建一个TStrings对象,将Memo1中的文字加入TStrings,然后再保存
var
strs: TStringList;
begin
strs := TStringList.Create;
try
strs.LoadFromFile('test.txt'); //先读取原来的文件
strs.AddStrings(Memo1.Lines); //插入新字符串
strs.SaveToFile('test.txt'); //保存文件
finally
strs.Free; //释放资源
end;
end;

中间插入新字符串的地方如果改成
strs.Text := strs.Text + Memo1.Text; 就是直接连接,没有换行,AddStrings则会在新旧之间插入换行。
0xCEA4
2012-03-26 · TA获得超过310个赞
知道小有建树答主
回答量:444
采纳率:100%
帮助的人:314万
展开全部
最好不要用上面那两位的方法,因为他们都需要先把原先的内容加载到内存再并接再保存,如果原来内容很多的话,效率会比较低下。最好是直接用文件操作函数写入。给你写了个函数:
procedure WriteTextFile(const TextFileName:String;content:TStrings);
var txtfile:TextFile;
i:Integer;
begin
if (content=nil) or (content.Count=0) then exit;
AssignFile(txtfile,TextFileName);
try
if FileExists(TextFileName) then
append(txtfile)
else
rewrite(txtfile);

for i:=0 to content.Count-1 do
writeln(txtfile,content[i]);
finally
closefile(txtfile);
end;
end;

使用时很简单,比如你要把Memo1的内容保存到D:\1.txt就这样调用:
WriteTextFile('D:\1.txt',Memo1.lines);

如果文件不存在它将创建,存在将写到尾部
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
402407
2012-03-26 · TA获得超过771个赞
知道小有建树答主
回答量:726
采纳率:50%
帮助的人:907万
展开全部
保存时,先将本次内容用临时串存储,然后用memo1.lines.loadfromfile,再memo1.lines.text+临时串,再save就行了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-03-26
展开全部
保存时,先将本次内容用临时串存储,然后用memo1.lines.loadfromfile,再memo1.lines.text+临时串,再save就行了 ~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式