当前位置:鱼C工作室 >Delphi > 查看文章

文件系统04 – 零基础入门学习Delphi37

文件系统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 的参数。

读取并修改记录演示程序


为您推荐

报歉!评论已关闭.