Delphi关于记录文件的操作

转载 2013年12月04日 17:29:02

本文版权归原作者所有

来源 :http://www.cnblogs.com/railgunman/archive/2010/08/16/1801004.html


本例子几个变量的说明
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;
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);


相关文章推荐

Delphi 流文件操作TStream类

数据流是面向对象程序设计语言中面向对象思想的典型体现,它彻底地取代了早期的利用函数实现输入输出的功能,克服了用函数实现输入输出功能的诸多弊端。简单来说,流就是建立在面向对象基础上的一种抽象的处理数据的...

Delphi学习笔记六——文件路径相关的字符串操作

uses HTTPApp, Masks; procedure TForm1.Button1Click(Sender: TObject); var ss,s: string; begin ...
  • kimifdw
  • kimifdw
  • 2012年12月18日 09:40
  • 890

Delphi 中对 ini 文件操作

Delphi 中对 ini 文件操作 一、INI文件的结构: ;注释 [小节名] 关键字=值   ini 文件允许有多个小节,每个小节又允许有多个关键字,"="后面是该关键字的值。  ...
  • luolunz
  • luolunz
  • 2012年04月18日 16:15
  • 661

Delphi TIniFile 类 操作ini配置文件

一、有必要了解INI文件的结构:;注释[小节名]关键字=值...---- INI文件允许有多个小节,每个小节又允许有多个关键字, “=”后面是该关键字的值。---- 值的类型有三种:字符串、整型数值和...

Delphi文件读写操作常用的方法

在进行win32开发中对文件的读写是最常用的操作之一,这编文章西西小编和大家一起来学习一下在Delphi中如何读写文件的方法。 Delphi 支持三种文件类型:  文本文件、记录文件、无类型文件...
  • L_baba
  • L_baba
  • 2017年06月30日 15:24
  • 122

Delphi中读写INI配置文件操作总结

首先说一下INI文件的格式如下: [COUNT]          #域名 COUNT=2       #变量名=值 [HXUSER] HXUSER=ht_invest [HXPWD] HXPWD...

delphi文件操作

====================================================== 注:本文源代码点此下载 =============================...

delphi学习笔记--文件操作

var file_name:string;file_name:='c:/luther.gliethttp.txt';FileWrite(com.log_fd, PChar(file_name)^, l...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Delphi关于记录文件的操作
举报原因:
原因补充:

(最多只允许输入30个字)