文件系统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函数以回到上一个记录。 下面的代码用来读取、修改并更新文件中记录: [codesyntax lang="delphi"]
	Seek(VFFishcOil, 1);
	Read(VFFishcOil, v1);
	v1.name:= ‘小由鱼’;
	Seek(VFFishcOil, 1);
	write(VFFishcOil, v1);
[/codesyntax]   如果忘记第二次调用Seek过程,结果则将用更新后的信息覆盖了第3条记录。这是初学者常犯的错误!  

把文件指针定位到文件尾的方法

  How to do?! It’s so easy! 想要把记录添加到记录文件的文件尾,在写操作之前,只需用 Seek 过程把文件指针移到文件的最后一条记录之后。 当然我们要先知道这个记录文件有多少条记录,最简单的办法是用 FileSize 获得文件的记录个数,并用这个数值作为 seek 的参数。 [caption id="attachment_625" align="aligncenter" width="300"] 读取并修改记录演示程序[/caption] [buy] 获得所有教学视频、课件、源代码等资源打包 [/buy] [Downlink href='http://kuai.xunlei.com/d/LGLQFXMSXEPR']视频下载[/Downlink]
posted @ 2012-01-08 22:56  我就爱小甲鱼  阅读(188)  评论(0编辑  收藏  举报