Delphi中文本文件的操作

在对文本文件进行任何处理之前,首先要打开此文本文件。声明变量:通过此变量可以来引用一个文本文件。

打开一个文件需要两步:首先是 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);