文件系统04
让编程改变世界
Change the world by program
记录型文件的记录数
记录文件中的记录是顺序排列的,每条记录都有一个编号,记录编号从 0 开始。
因此在包含N个记录的文件中,第一个记录的编号(或称记录号)是0,最后一个记录的编号是N-1。
如果想知道文件中有多少记录,可调用 FileSize标准函数,该函数用来返回记录数。
function FileSize(var F): Integer;
移动与检测记录文件的文件指针
无论何时打开文件,也不管是用 Reset 或 Rewrite 过程打开,都可以看为有一个不可见指针都定位在文件首。
提供移动和检测文件指针的位置使随机存取文件中的记录成为可能,记录的随机存取是通过 Seek 过程和 FilePos 函数来实现的。
Seek 过程的作用是把文件指针移动到文件中的指定记录,而 FilePos 函数是返回文件指针当前所指的记录的记录号。
[Seek]
procedure Seek(var F; N: Longint);
记录型文件变量 F 关联的文件的文件指针移到编号为N 的记录处,注意第一条记录的编号为0。
[FilePos]
function FilePos(var F): Longint;
返回与记录型文件变量F关联的文件的文件指针所处的位置。
读取修改记录
[例如] 要读取与 VFFishcOil 文件型变量相关联的文件的第五条记录,可使用如下语句:
Seek(VFFishcOil, 4);
Read(VFFishcOil, v1);
注意:如果想读一个记录并修改它,然后再用新的信息覆盖旧信息,在写操作之前必须调用 Seek函数以回到上一个记录。
下面的代码用来读取、修改并更新文件中记录:
Seek(VFFishcOil, 1);
Read(VFFishcOil, v1);
v1.name:= ‘小由鱼’;
Seek(VFFishcOil, 1);
write(VFFishcOil, v1);
如果忘记第二次调用Seek过程,结果则将用更新后的信息覆盖了第3条记录。这是初学者常犯的错误!
把文件指针定位到文件尾的方法
How to do?!
It’s so easy!
想要把记录添加到记录文件的文件尾,在写操作之前,只需用 Seek 过程把文件指针移到文件的最后一条记录之后。
当然我们要先知道这个记录文件有多少条记录,最简单的办法是用 FileSize 获得文件的记录个数,并用这个数值作为 seek 的参数。

读取并修改记录演示程序
视频下载
技术, IT技术, Delphi, 视频教程