文本文件是以行为单位进行读、写的。由于每一行的长度不一定相同,不能计算出给定行在文件中的确切位置,因而只能顺序地读写。
文本文件只能单独为读或写而打开,在一个打开的文本文件上同时进行读、写操作是不允许的。
文本文件的打开需要两个步骤:1.文件变量与文件名关联;2.初始化读写。
1.文件变量与文件名关联:
AssignFile(VarTxt, FileName);
FileName 如果省略路径将默认当前目录。
2.初始化读写有三种方式:
(1) Reset: 只读打开, 指针移到文本开始;
(2) Rewrite: 创建新文件并打开, 只写;
(3) Append: 从尾部追加, 指针指向文本末尾。
文件不存在时使用 Reset 或 Append 会引发一个I/O异常。
最后用 CloseFile 关闭文件。
下面是常用的三个操作,写入内容,读取内容,追加内容
- unit Unit1;
- interface
- uses
- Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
- Dialogs, StdCtrls;
- type
- TForm1 = class(TForm)
- Button1: TButton;
- Button2: TButton;
- Button3: TButton;
- procedure Button1Click(Sender: TObject);
- procedure Button2Click(Sender: TObject);
- procedure Button3Click(Sender: TObject);
- private
- { Private declarations }
- public
- { Public declarations }
- end;
- var
- Form1: TForm1;
- implementation
- var
- F: TextFile;
- FileName: string = 'c:/A.txt';
- {$R *.dfm}
- //向文本文件写入内容
- procedure TForm1.Button1Click(Sender: TObject);
- begin
- AssignFile(F,FileName);
- Rewrite(F); //重写(覆盖)已存在的文件
- Writeln(F,'one'); //写入一行
- Writeln(F,'two');
- CloseFile(F);
- end;
- //读取文本文件内容
- procedure TForm1.Button2Click(Sender: TObject);
- var
- str:string;
- begin
- AssignFile(F,FileName);
- Reset(F); //以只读方式打开文本文件
- while not Eof(F) do //循环文本文件,判断是否到尾部
- begin
- Readln(F,str); //读取一行
- ShowMessage(str);
- end;
- end;
- //向文本文件追加内容
- procedure TForm1.Button3Click(Sender: TObject);
- begin
- AssignFile(F,FileName);
- Append(F); //打开文件准备追加,指针指向文本末尾
- Writeln(F, 'three'); //写入一行
- Writeln(F, 'four');
- CloseFile(F);
- end;
- end.
http://blog.csdn.net/bdmh/article/details/4147077