捐助郴维网
感谢您对郴维网的支持,你的支持将是郴维网持续发展的动力!
二维码
×
当前位置:郴维网 >基础知识 > 正文
24 2020.03

delphi TextFile操作文本文件

点击次数:454 更新时间:2020-3-24 11:21:07  【打印此页

概念

    在Delphi中定义了TextFile类型表示文本文件,由字符的ASCII码组成,最小存取单位为字符。文本文件也称为ASCII码文件。利用常见的文字编辑器可以浏览支件内容。

    TextFile类只支持ANSI编码,无法对其它编码进行读写操作。

 

相关方法

   一、文本文件变量的定义

    var <文件变量名>: TextFile;  
    // 或
    var <文件变量名>: Text;

    二、文件变量和文件关联

        在使用文件变量进行文件操作之前,需要将文件变量与要操作的文件关联,即给文件变量名赋值。文件变量赋值可以使用过程AssignFile,过程的说明语法格式如下:

    procedure AssignFile(Var F;Filename:string);
    {
    参数:
      F		文件变量名
      Filename	文件名字符串,包括路径的文件名全称。
    
    示例:
      AssignFile(txt, 'e:\test.txt’);
    }

   三、使用文件变量打开文件

       Reset方法

    procedure Reset(var F: File; [ RecSize: Integer]); overload;
    {
    功能:
      以只读方式打开名为F现有外部文件。如果不存在给定名称的现有外部文件,
      或者无法使用当前文件模式打开该文件,则会导致错误。
      如果F已经打开,它首先关闭,然后重新打开。当前文件位置设置为文件的开头。
      如果F被分配一个空名称,比如AssignFile(F, ''),那么在调用Reset之后,F引用标准输入文件。
      调用Reset之后,如果文件为空,则Eof(F)为True;否则,Eof(F)为False。
      如果发生任何I/O错误,Reset将关闭文件。您不需要调用CloseFile。
      注意:{$I+}使用异常处理运行时错误。使用{$I-}时,请使用IOResult检查I/O错误。
      
    参数:
      F		文件变量名
    }

       Rewrite方法

    procedure Rewrite(var F: File; [ RecSize: Integer]); overload;
    {
    功能:
      创建一个新的外部文件,文件名指定给F。
      如果已存在同名的外部文件,则删除该文件并在其位置创建新的空文件。
      如果F已经打开,它首先关闭,然后重新创建。当前文件位置设置为空文件的开头。
      如果F被分配了一个空名称,比如AssignFile(F,''),那么在调用Rewrite之后,F引用标准输出文件。
      调用Rewrite之后,Eof(F)始终为True。      
      如果发生任何I/O错误,重写将关闭文件。您不需要调用CloseFile。
      注意:{$I+}使用异常处理运行时错误。使用{$I-}时,请使用IOResult检查I/O错误。
      
    参数:
      F		文件变量名
    }  

        Append方法

    function Append(var F: Text): Integer;
    {
    功能:
      向文件末尾追加内容
      调用Append前确保文件是以只写方式打开。
      如果给定名称的外部文件不存在,则会发生错误。如果F已经打开,它将关闭,然后重新打开;当前文件位置设置在文件末尾。
      如果F被分配了一个空名称,比如AssignFile(F,''),则在调用Append之后,F引用标准输出文件。
      
    参数:
      F		文件变量名
    }

   四、读/写文件 方法

       4.1、读取文件内容。在以读的方式打开文件后,可以使用Read和Readln语句来读取文件内容。

    procedure Read(var F: File; V1; [ ..., VN]);
    {
    功能:
      对于文本文件,它将一个字符或多个字符读入一个或多个变量。      
      
    参数:
      F			文件变量名
      V1、V2、...、VN	为需要输入的变量,其类型可以为字符串、字符、整数和实数类型
    }
    procedure Readln(var F: File; [ ..., VN]); overload;
    {
    功能:
      读取一行文本,然后跳到文件的下一行。
      
    参数:
      F			文件变量名
      V1、V2、...、VN	为需要输入的变量,其类型可以为字符串、字符、整数和实数类型
    }

       4.2、向文件写入数据。以写的方式打开文件后,即可向其中写入数据,写人数据使用Write和Writeln过程。

    procedure Write([var F: File]; P1; [ ..., PN]); overload;
    {
    功能:
      对于文本文件,它将一个字符或多个字符写入文本文件。      
      
    参数:
      F			文件变量名
      P1、P2、...、PN	为需要输出的变量,其类型可以为字符串、字符、整数和实数类型
    }
    procedure Writeln([var F: File]; [ P1; [ ..., PN] ]); overload;
    {
    功能:
      向文件中写入一行数据。在写入数据后会在行尾添加行尾标记(换行符),而下次要写入的数据将写在新的一行。      
      
    参数:
      F			文件变量名
      P1、P2、...、PN	为需要输出的变量,其类型可以为字符串、字符、整数和实数类型
    }

   五、Eof 文件尾标记

  
    function Eof([var F: File]): Boolean; overload;
    {
    功能:
      判断当前文件指针位置是否到达文件的结尾。
      
    参数:
      F		文件变量名
      
    返回值:
      当前文件指针位置超过文件的最后一个字符或文件为空,则Eof(F)返回True;否则Eof(F)返回False。
    }

    六、关闭文件

    procedure CloseFile(var F: File);
    {
    功能:
      关闭文件并释放打开文件时使用的资源。对于写操作只有ColoseFile后才能把数据真正写入磁盘文件中。
      
    参数:
      F		文件变量名
    }

 

使用示例

    读文件

procedure TForm1.btn1Click(Sender: TObject);
var
  Filename: string;
  F: TextFile;
  tmpStr: string;
begin
  Filename:= 'test.txt';
  AssignFile(F, Filename);
  Reset(F); // 读
  while not EOF(F) do
  begin
    Readln(F, tmpStr); // 读取一行保存至变量tmpStr中
    mmo1.Lines.Add(tmpStr);
  end;
  CloseFile(F); // 最后别忘了关闭
end;

    写文件

procedure TForm1.btn2Click(Sender: TObject);
var
  Filename: string;
  F: TextFile;
begin
  Filename:= 'test.txt';
  AssignFile(F, Filename);
  Rewrite(F); // 创建并打开一个新文件(或覆盖原有文件)
  Writeln(F, 'http://1118pc.com'); // 写入一行字符串
  CloseFile(F); // 最后别忘了关闭
end;

    追加内容

procedure TForm1.btn3Click(Sender: TObject);
var
  Filename: string;
  F: TextFile;
begin
  Filename:= 'test.txt';
  AssignFile(F, Filename);
  Append(F); // 以追加的方式打开文件,指针到文件尾
  Writeln(F, 'http://1118pc.com'); // 写入一行字符串
  CloseFile(F); // 最后别忘了关闭
end;

    日志文件(文件不存在则创建,存在则追加内容)

procedure AppendFile(s, Filename: string);
var
  F: TextFile;
begin
  // 先判断一下文件是否存在, 不存在时就创建它
  if not FileExists(Filename) then
  begin
    AssignFile(F, Filename);
    Rewrite(F);
    CloseFile(F);
  end;

  AssignFile(F, Filename);
  Append(F); // 以追加的方式打开文件,指针到文件尾
  Writeln(F, s); // 把内容 s 写入文件
  CloseFile(F);
end;

// 调用
procedure TForm1.btn2Click(Sender: TObject);
begin
  AppendFile('http://1118pc.com', 'test.txt');
end;
Tips
郴维网为您提供各类专业服务:
软件开发,电脑配件销售,WIFI路由器销售,上门电脑维修,上门安装系统,系统安装,软、硬件安装,电脑除尘清灰,显示器维修,WIFI安装调试,服务器维护,数据恢复,密码破解,网络布线,网络检修,打印机维修,打印机加碳粉,苹果电脑安装系统,苹果电脑安装双系统,监控安装维护,电脑外包,笔记本电脑维修,餐饮、美容行业软件安装 等。。。。。。
点击次数:454 更新时间:2020-3-24 11:21:07  【打印此页
关键词推荐:郴州电脑城 郴州电脑维修公司 维修电脑公司 郴州软件开发 上门电脑维修 上门安装系统 笔记本电脑维修 郴州打印机维修 打印机加碳粉 电脑安装双系统 苹果电脑双系统 液晶显示器维修 联想笔记本维修 联想笔记本维修电话 戴尔笔记本维修电话 郴州戴尔笔记本维修 戴尔笔记本郴州维修点 华硕笔记本维修点 郴州华硕笔记本维修 郴州笔记本上网维修