• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Delphi关于记录文件的操作

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本例子几个变量的说明
TFileRec = record   //记录定义
Day : Integer;
...  //其他定义
end;
f : File of TFileRec;    //标准的输入/输出文件
FilRec : TFileRec;      //记录数据
FileName ;               //记录文件的名称
关于记录文件的相关操作
(1)记录文件的打开
(2)记录文件的读入和显示
(3)记录的增加
(4)记录的删除
(5)记录的修改
(6)记录文件的删除

1、记录文件的打开
需要使用的方法:
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;
2、记录文件的读入
需要使用的方法

Read(f,FileRec);
procedure ReadData_FromRecFile;
begin
for i := 1 to FileSize(f) do
begin
Read(f,FileRec);
...//其他的处理(比如记录的显示等等)
end;
end;
3、记录的增加
需要使用的方法
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;
4、记录的删除
需要使用的方法
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;
5、记录的修改
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;
6、记录文件的关闭
CloseFile(f);


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Matlab中二维统计分析图和三维立体图发布时间:2022-07-18
下一篇:
Matlab中imagesc用法发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap