【Delphi入门】记录型文件(概念 & 定义 & 打开关闭 & 读写)

记录型文件

由数据记录组成,按记录的长度可分为定长记录文件和变长记录文件
记录是记录型文件的最小存取单位。一个记录由若干属性组成。用以标识记录的属性称为关键字
以学生文件为例,每个学生的情况就是一个记录,有学号,姓名,出生日期,性别等属性。学号可以选作该记录的关键字
一般来说,可用来标识一个记录的关键字不只一个,但其中有一个是唯一标识这个记录的,称之为主关键字(如上例中的学号),而其他关键字称为次关键字(如学生的出生日期)
为了便于存储、检索或加工相关的信息项目,有时把文件划分成若干个记录,这种文件称为记录型文件

记录型文件变量定义

步骤一:定义记录类型

type
  Stu = record
  name: String;
  rdate: Integer; // 20111203
  sex: Char;      // ‘M’ or ‘F’
end;

步骤二:定义记录文件类型的变量

var
  记录文件类型变量名: 记录文件类型;
  VFStu: File of Stu;

记录型文件打开和关闭

和文本文件一样,AssignFile 标准过程用来关联记录文件变量与实际的磁盘文件
Reset 和 Rewrite 过程用来打开记录文件,CloseFile 过程用来关闭记录文件
注意:
不能用 Append 过程来打开一个记录文件,它仅限于文本文件
Reset打开记录文件的属性是读或写
对于记录文件,如果在添加记录以后忘记关闭文件,极大可能会破坏整个文件

记录型文件读写

和文本文件一样,可以使用 Write 和 Read 过程
如果用Read过程读取记录,文件位置指针超过了文件尾,将会发生运行时错误。因此读取数据时一般要对文件尾进行判断

记录型文件记录数

记录文件中的记录是顺序排列的,每条记录都有一个编号,记录编号从 0 开始
因此在包含N个记录的文件中,第一个记录的编号(或称记录号)是0,最后一个记录的编号是N-1
调用 FileSize 标准函数,该函数用来返回记录数

function FileSize(var F): Integer;

移动与检测记录文件的文件指针

无论何时打开文件,也不管是用 Reset 或 Rewrite 过程打开,都可以看为有一个不可见指针都定位在文件首
提供移动和检测文件指针的位置使随机存取文件中的记录成为可能,记录的随机存取是通过 Seek 过程和 FilePos 函数来实现的
Seek 过程的作用是把文件指针移动到文件中的指定记录,而 FilePos 函数是返回文件指针当前所指的记录的记录号

procedure Seek(var F; N: Longint);
//记录型文件变量 F 关联的文件的文件指针移到编号为N 的记录处,注意第一条记录的编号为0
function FilePos(var F): Longint;
//返回与记录型文件变量F关联的文件的文件指针所处的位置

注意:
如果想读一个记录并修改它,然后再用新的信息覆盖旧信息,在写操作之前必须调用 Seek函数以回到上一个记录

文件指针定位到文件尾

  1. 用 FileSize 获得文件的记录个数,并用这个数值作为 seek 的参数
  2. 用 Seek 过程把文件指针移到文件的最后一条记录之后
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值