Function ReadLineFromFile(FileName:String,Line:Integer):String; var Mylist:TStringList; StrLine:String; begin Mylist:=TstringList.Create; Mylist.LoadFromFile(FileName) ; StrLine:=MyList.Strings[Line-1]; result:=strLine; Mylist.Free; end; 举个例子: 读文件’E:\notebook.txt'的第一行 Line1:=ReadLineFromFile('e:\notebook.txt',1); 好了,这只是提示你一下而已 为了保证安全性,你需要加入try.....finally.....end 等,防止内存泄漏 写的只要倒过去就可以了,你好好想想,不行再问:) 祝你成功!!
//追加文本 var myfile:testfile; i:integer; begin assignfile(myfile,'myfile.txt'); rewrite(myfile); for i:=1 to 5 do writeln(myfile,inttostr(i),i); closefile(myfile); end; //读取文本 var myfile:textfile; s:string; j:integer; begin assignfile(myfile,'myfile.txt'); reset(myfile); try while not eof((myfile) do begin readln(myfile,s,j); memo1.lines.add(s); end; closefile(myfile); end;
有三种方式打开文件: Rewrite(): 创建并打开文件; Reset():只读方式打开文件; Append():向已存在的文件追加文本; //-----------让listbox读出XX.txt文件中的信息---//var XXText: TextFile; i: integer; s: string; begin i := 0; AssignFile(XXText,'XX.txt'); Reset(XXText); try while not Eof(XXText) do begin Readln(XXText,s); form2.ListBox1.Items[i] := s; Inc(i); end; finally CloseFile(XXText); end; end; //-------把ListBox中的信息写入XX文件------------// var XXText: TextFile; i: integer; begin AssignFile(XXText,ExtractFilePath(Application.ExeName) + 'XX.txt'); Rewrite(XXText); try for i := form2.ListBox1.TopIndex to form2.ListBox1.Items.Count -1 do writeln(XXText,form2.Listbox1.Items[i]); finally CloseFile(XXText); end;
Procedure WriteToFile(FileName:String,Line:integer,StrLine:string); var Mylist:TstringList; begin Mylist:=Tstringlist.create; Mylist.LoadFromFile(FileName); if Line<Mylist.count then Mylist.strings[Line-1]:=StrLine; Mylist.savetofile; Mylist.Free; end; //将字符写入文件的第三行 WriteToFile('notebook.txt',3,'hello,world'); //其实你还要考虑很多问题的,我这里是覆盖了原来的第一行,如果存在的话 当然稍微修改一下,你就可以加到最后,其实用文件列表类是操作文件最简便的方法,希望你好好学习,其他的用文件关联的也可以,但烦了点,我不喜欢用:)
var Mylist:TStringList;
StrLine:String;
begin
Mylist:=TstringList.Create;
Mylist.LoadFromFile(FileName) ;
StrLine:=MyList.Strings[Line-1];
result:=strLine;
Mylist.Free;
end;
举个例子:
读文件’E:\notebook.txt'的第一行
Line1:=ReadLineFromFile('e:\notebook.txt',1);
好了,这只是提示你一下而已
为了保证安全性,你需要加入try.....finally.....end 等,防止内存泄漏
写的只要倒过去就可以了,你好好想想,不行再问:)
祝你成功!!
var
myfile:testfile;
i:integer;
begin
assignfile(myfile,'myfile.txt');
rewrite(myfile);
for i:=1 to 5 do
writeln(myfile,inttostr(i),i);
closefile(myfile);
end;
//读取文本
var myfile:textfile;
s:string;
j:integer;
begin
assignfile(myfile,'myfile.txt');
reset(myfile);
try
while not eof((myfile) do
begin
readln(myfile,s,j);
memo1.lines.add(s);
end;
closefile(myfile);
end;
Rewrite(): 创建并打开文件;
Reset():只读方式打开文件;
Append():向已存在的文件追加文本;
//-----------让listbox读出XX.txt文件中的信息---//var XXText: TextFile;
i: integer;
s: string;
begin
i := 0;
AssignFile(XXText,'XX.txt');
Reset(XXText);
try
while not Eof(XXText) do
begin
Readln(XXText,s);
form2.ListBox1.Items[i] := s;
Inc(i);
end;
finally
CloseFile(XXText);
end;
end;
//-------把ListBox中的信息写入XX文件------------//
var XXText: TextFile;
i: integer;
begin
AssignFile(XXText,ExtractFilePath(Application.ExeName) + 'XX.txt');
Rewrite(XXText);
try
for i := form2.ListBox1.TopIndex to form2.ListBox1.Items.Count -1 do
writeln(XXText,form2.Listbox1.Items[i]);
finally
CloseFile(XXText);
end;
var Mylist:TstringList;
begin
Mylist:=Tstringlist.create;
Mylist.LoadFromFile(FileName);
if Line<Mylist.count then
Mylist.strings[Line-1]:=StrLine;
Mylist.savetofile;
Mylist.Free;
end;
//将字符写入文件的第三行
WriteToFile('notebook.txt',3,'hello,world');
//其实你还要考虑很多问题的,我这里是覆盖了原来的第一行,如果存在的话
当然稍微修改一下,你就可以加到最后,其实用文件列表类是操作文件最简便的方法,希望你好好学习,其他的用文件关联的也可以,但烦了点,我不喜欢用:)