您的位置:首页 > 编程语言 > Delphi

Delphi关于记录文件的操作-转

2012-03-08 20:57 351 查看
本例子几个变量的说明
TFileRec = record //记录定义
Day : Integer;
...//其他定义
end;
f : File of TFileRec //标准的输入/输出文件
FilRec : TFileRec //记录数据
FileName : 记录文件的名称

关于记录文件的相关操作
(1)记录文件的打开
(2)记录文件的读入和显示
(3)记录的增加
(4)记录的删除
(5)记录的修改
(6)记录文件的删除

记录文件的打开
需要使用的方法:

AssingFile(f, FileName);
Reset(f); //打开一个已经存在的记录文件
Rewrite(f); //新创建一个记录文件
FileSize(f); //返回记录文件记录个数

procedure OpenRecFile(const FileName: string; var f: TFileRec);
begin
AssingFile(f, FileName);
try
Reset(f);
except //打开文件出现异常的处理
on EInOutError do
begin
try
if FileExists(FileName) = False then //如果文件不存在,创建
ReWrite(MethodFile)
else //文件存在,但是打不开,表示这个文件有问题
MessageDlg('文件不能打开', mtWarning, [mbOK], 0);
except //创建新文件的时候出现异常的处理
on EInOutError do
MessageDlg('文件不能创建', mtWarning, [mbOK], 0);
end;
end;
end;
end;

记录文件的读入
需要使用的方法
Read(f,FileRec);

procedure ReadData_FromRecFile;
begin
for i := 1 to FileSize(f) do
begin
Read(f, FileRec);
...//其他的处理(比如记录的显示等等)
end;
end;

记录的增加
需要使用的方法
Seek(f,RecNo); //RecNo代表要定位置的记录编号
Write(f,FileRec)
基本思路:
获取指定记录的位置,并把该位置后的记录逐个向后移动
(1)在文件的尾部增加记录

procedure InsertData_AtRecFile_Last(const Data: TFileRec); //需要插入的数据
begin
Seek(f, FileSize(f));
Write(f, Data);
end;(2)在文件的指定位置前增加记录procedure InsertData_AtRecFile(const Index: Integer);
//索引号const Data : TFileRec;
//需要插入的数据
var
nI: Integer;
begin
if (Index > FileSize(f)) or (Index < 0) then
Exit;
for nI := FileSize(f) - 1 downto Index do
begin
seek(f, nI);
read(f, FileRec);
Seek(f, nI + 1);
Write(f, FileRec);
end;
Seek(f, Index);
Write(f, Data);
end;记录的删除需要使用的方法 Seek(f,Index); //Index代表要定位置的记录编号Write(f,FileRec)Truncate(f) //删除指定索引号之后的索引文件基本思路:获取指定位置,并把该位置后的记录逐个

向前移动。 文件在最后一条记录前截断。(1)删除指定索引号的记录

procedure DeleteData_FromRecFile(const Index: Integer);
var
nI: Integer;
begin
if (Index < 0) or (FileSize(f) = 0) then
Exit;
for nI := Index + 1 to FileSize(f) - 1 do
begin
seek(f, nI);
read(f, FileRec);
seek(f, nI - 1);
Write(f, FileRec);
end;
Seek(f, FileSize(f) - 1); //截断最后一条记录
Truncate(f);
end;记录的修改procedure ModifyData_AtRecFile(const Index: Integer; const Data: TFileRec);
begin
if (Index < 0) or (FileSize(f) = 0) or (Index > FileSize(f) - 1) then
Exit;
Seek(f, Index);
Write(f, Data);
end;
记录文件的关闭
CloseFile(f);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: