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;