抽烟 知乎:delphi编程之文本文件读写

来源:百度文库 编辑:中财网 时间:2024/05/13 14:09:35
Delphi 支持三种文件类型: 文本文件、记录文件、无类型文件。

文本文件是以行为单位进行读、写的。由于每一行的长度不一定相同,不能计算出给定行在文件中的确切位置,因而只能顺序地读写。

文本文件只能单独为读或写而打开,在一个打开的文本文件上同时进行读、写操作是不允许的。

文本文件的打开需要两个步骤:1.文件变量与文件名关联;2.初始化读写。

1.文件变量与文件名关联: 
AssignFile(VarTxt, FileName);
FileName 如果省略路径将默认当前目录。

2.初始化读写有三种方式:
(1) Reset: 只读打开, 指针移到文件头;
(2) Rewrite: 创建新文件并打开, 只写;
(3) Append: 从尾部追加, 指针当然在文件尾。

文件不存在时使用 Reset 或 Append 会引发一个I/O异常。

最后用 CloseFile 关闭文件。

为保持兼容,Delphi 也允许用户用 Assign 建立关联, 用 Close 关闭文件。

//读写示例:unit Unit1;interfaceuses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, StdCtrls;type  TForm1 = class(TForm)    Memo1: TMemo;    Button1: TButton;    Button2: TButton;    Button3: TButton;    Button4: TButton;    Button5: TButton;    Button6: TButton;    Button7: TButton;    procedure Button1Click(Sender: TObject);    procedure Button2Click(Sender: TObject);    procedure Button3Click(Sender: TObject);    procedure Button4Click(Sender: TObject);    procedure Button5Click(Sender: TObject);    procedure Button6Click(Sender: TObject);    procedure Button7Click(Sender: TObject);  private    { Private declarations }  public    { Public declarations }  end;var  Form1: TForm1;implementation{$R *.dfm}var  F: Text;  //TextFile 和 Text 是一样的  FileName: string = 'c:\temp\test.txt';//写文件procedure TForm1.Button1Click(Sender: TObject);begin  AssignFile(F,FileName);  Rewrite(F);  //会覆盖已存在的文件  Writeln(F, '第一行');  Writeln(F, '第二行');  CloseFile(F);end;//读文件(先执行写文件)procedure TForm1.Button2Click(Sender: TObject);var  s: string;begin  AssignFile(F,FileName);  Reset(F);  //只读打开  Readln(F, s);   //读取  ShowMessage(s); //显示: 第一行  Readln(F, s);   //继续读取  ShowMessage(s); //显示: 第二行  CloseFile(F);end;//追加procedure TForm1.Button3Click(Sender: TObject);begin  AssignFile(F,FileName);  Append(F);  //打开准备追加  Writeln(F, '第三行');  Writeln(F, '第四行');  CloseFile(F);end;