在对文本文件进行任何处理之前,首先要打开此文本文件。声明变量:通过此变量可以来引用一个文本文件。
打开一个文件需要两步:首先是 AssignFile(),它可以将文件变量与一个文件关联起来。例如:这时,你可以进行第二步:打开文件。有三种方式打开文件:使用Rewrite()过程创建并打开文件;对于一个已存在的文件,此操作将使文件被覆盖;使用Reset()过程只读地打开一个文件;使用Append() 过程向已存在的文件追加文本。
注意Reset()将以可读写方式打开类型文件和无类型文件。可以使用CloseFile()来关闭一个已打开的文件。
下面是各种调用的函数:
文件的打开与关闭:
AssignFile:把一个外部文件名和一个文件变量相关联 Reset:打开一个存在的文件 只读打开 Rewrite:创建并打开一个新文件(或覆盖原有文件) Append :以添加方式打开一个文件(只适用于文本文件) CloseFile:关闭一个打开的文件 FileOpen:打开一个特定的文件并返回文件句柄 FileCreate:创建一个给定文件名的文件并返回文件句柄 FileClose:关闭一个特定句柄的文件 后边三个文件主要供系统内部使用,在文件复制的编程中也往往会用到。它们操作的对象是文件句柄而不是文件变量。
文件定位:
Seek:把文件当前位置移到指定部分 FilePos:返回文件的当前位置 Eoln:返回行结束标志 EOF:返回文件结束标志 FileSeek:改变当前文件指针的位置
注:RichEdit和Memo这两个文本操作控件属性基本差不多,主要区别是RichEdit支持格式化文本,而Memo不能
Memo1.Lines.LoadFromFile()//读出文件(,如果要打开指定文本需要OpenDialog) memo1.Lines.SaveToFile() //修改后保存文件(保存到原路径下的原文件,如果要另存需要SaveDialog)
示例代码:
一, 逐行读取
procedure TForm1.Button1Click(Sender: TObject); var myfile:Textfile; s:String; begin AssignFile(myfile,’f:\a.txt’); Reset(myfile); while not eof(myfile) do begin Readln(myfile,s); Memo1.Lines.Add(s); end; CloseFile(myfile); end;
二, 一次性读取,控件自带属性
procedure TForm1.Button2Click(Sender: TObject); begin Memo1.Lines.LoadFromFile(ExtractFilePath(Application.ExeName)+’a.txt’); //打开并读出程序目录下的’a.txt’文本文件 end;
三,写文件
procedure TForm1.Button3Click(Sender: TObject); //写文件 var stxt:TextFile; begin AssignFile(stxt,’my.txt’); Rewrite(stxt); //创建并打开文件;若文件已存在,此操作将使文件内容清空,使用ReSet只能打开,若指定的文件不存在时会产生一个错误 Writeln(stxt, ‘I love you!’); //此处为写入一行数据,当然也可以写成 Writeln(stxt, Memo1.Text); 即一次性写入Memo1中的所有内容 CloseFile(stxt); end;
清空文本后再写值:
assignfile(f,’.\data\result.txt’); rewrite(f); //清空文本 closefile(f); assignfile(f,’.\data\result.txt’); Append(f);