简单问题?送分呵呵:-) 在线等待:-)关于memo 与 file 的简单问题!(50分)

H

HaiGxj

Unregistered / Unconfirmed
GUEST, unregistred user!
for i := 0 to Memo1.Lines.Count - 1 do begin
s := Memo1.Lines.Strings;
WriteLn(f,s); //--->> 编译不能通过?为何? 其中 s: string;
end;
 
f是什么啊?有没有打开?
 
请看!
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
f:textfile;
s:string;
filename:string;
begin
filename:='c:/yyy.txt';
assignfile(f,filename);
//判断文件是否存在,如果存在则向文件追加,如果不存在,则生成新文件
if fileExists(filename) then
reset(f)
else
reWrite(f);
//写文件
try
for i := 0 to Memo1.Lines.Count - 1 do begin
s := Memo1.Lines.Strings;
WriteLn(f,s); //--->> 现在可以了! 其中 s: string;
end;
finally
closefile(f);
end;
end;

祝你成功!!!!
 
是要将memo写入一个文件吗:
直接用

memo1.lines.saveTofile('fileName.txt');
如果不是,请贴出全代码,我们帮你查查。。
 
procedure TForm1.FormCreate(Sender: TObject);
var
path: string;
begin
path := GetCurrentDir + fname;
try
AssignFile(f,path);
if fileExists(path) then Append(f)
else Rewrite(f);
finally
CloseFile(f);
end;
end;

procedure TForm1.AddBtnClick(Sender: TObject);
var
i: integer;
s: string;
begin
ID := StrtoInt(Oicq.Text);
Name := Nick.Text;
WriteLn(f,ID,Space,Name);
for i := 0 to Memo1.Lines.Count - 1 do begin
s := Memo1.Lines.Strings;
WriteLn(f,s);
end;
WriteLn(f,'/n');
Oicq.Text := '';
Nick.Text := '';
Memo1.Lines.Clear;
Memo1.SetFocus;
end;

我的做法和 春意 的想法差不多! del520了,memo.savetofile() 我也用过,但是我要
添加memo 中的内容到文件的末尾,好想不好用memo.savetofile(),所以我就一行一行的写到文件中去
!! 我感觉没有做错,可是编译通不过!
 
编译什么错误???
//
还有,你可以使用一个strs: TStrings; (strs:=TStringList.create);
一开始,将原有的内容装入,strs.loadfromfile(...);
然后要写入文件的内容追加到strs中去旧可以了。
最后strs.savetofile('..');


 
在procedure TForm1.AddBtnClick(Sender: TObject)中应该加上
assignfile(f,filename);
//判断文件是否存在,如果存在则向文件追加,如果不存在,则生成新文件
if fileExists(filename) then
reset(f)
else
reWrite(f);
然后才可以writeln吧,因为在你的formcreate中f已经被closefile了
另外GetCurrentDir 得到的目录名不带'/',要加上
 
我试了你的程序,能编译啊,你哪里编译报错啊?
 
谢谢大家: 谢谢del520 resun twos 春意 一开始没有想到,只给了这么一点分,
不好意思~:-) 再次谢谢大家了:-)
 
顶部