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');各位帮帮忙。
展开
展开全部
这种情况下,你不能直接使用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则会在新旧之间插入换行。
而是应该新创建一个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则会在新旧之间插入换行。
展开全部
最好不要用上面那两位的方法,因为他们都需要先把原先的内容加载到内存再并接再保存,如果原来内容很多的话,效率会比较低下。最好是直接用文件操作函数写入。给你写了个函数:
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);
如果文件不存在它将创建,存在将写到尾部
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);
如果文件不存在它将创建,存在将写到尾部
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
保存时,先将本次内容用临时串存储,然后用memo1.lines.loadfromfile,再memo1.lines.text+临时串,再save就行了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-03-26
展开全部
保存时,先将本次内容用临时串存储,然后用memo1.lines.loadfromfile,再memo1.lines.text+临时串,再save就行了
~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询