delphi 读写记录类型文件Record

type personInfo=Record //定义Record
Name:String[10];

Age:integer;

end;

//写记录包括新键与添加记录

procedure WriteRec;

var NewRec:PersonInfo; //声明Rec变量

F:File of PersonInfo; //Rec型文件变量

RecFileName:ShortString; //保存Rec的文件全名

RecCount:integer; //Rec数量

begin

NewRec.Name:=NameEdit.Text; //从界面上取数据

NewRec.Age:=StrToInt(AgeEdit.Text);

RecFileName:='C:PersonInfo.Rec';

AssignFile(F,RecFileName);

if FileExists(RecFileName)<>True then //判断文件是否存在

begin

Rewrite(F); //不存在则新增文件

Write(F,NewRec);

end

else

begin

FileMode:=1; //设置成WriteOnly模式

Reset(F); //存在则添加Rec入文件

RecCount:=FileSize(F); //取Rec数量

Seek(F,RecCount); //设置Pointer位置

Write(F,NewRec);

end;

CloseFile(F); //关闭文件

end;

//读取记录

procedure ReadRec;

var GetRec:PersonInfo;

F:File of PersonInfo;

RecFileName:ShortString; //保存Rec的文件名称

RecCount:Integer; //用户想要读取的Rec位置

RecMax:integer; //Rec的最大值

begin

RecFileName:='C:PersonInfo.Rec';

RecCount:=StrToInt(CountEdit.Text)-1; //用户要提取第一个就输入1,类推

AssignFile(F,RecFileName);

if FileExists(RecFileName)<>True then exit;

FileMode:=0;

Reset(F);

RecMax:=FileSize(F);

if RecCount>RecMax-1 then Exit; //超过Rec最大值则跳出

Seek(F,RecCount); //设置读取Rec的Pointer位置

Read(F,GetRec);

Showmessage(GetRec.Name+InttoStr(GetRec.Age));

end;

  

原文地址:https://www.cnblogs.com/blogpro/p/11453559.html