文件系统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条记录。这是初学者常犯的错误!