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

Delphi关于记录文件的操作

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

转载于:https://www.cnblogs.com/delphi-xe5/p/6082899.html

Delphi关于记录文件的操作相关推荐

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

    本例子几个变量的说明 TFileRec = record //记录定义 Day : Integer; ...//其他定义 end; f : File of TFileRec //标准的输入/输出文件 ...

  2. Delphi 对Txt文件的操作

    {$APPTYPE CONSOLE} {By:天下第一小贱人} uses Windows; {新建一个TXT文档} Procedure NewTxt(FileName:String); Var F : ...

  3. php windows 操作文件,Windows开启审核功能来记录文件删除操作的详解

    问题描述: Windows机器上某些文件被异常删除,打包.怀疑入侵.如何排查. 问题解决: 1. 配置组策略 开始菜单选择"运行"打开"组策略编辑器" 依次定位 ...

  4. delphi 文件夹操作

    文件的拖放和打开拖拽 user shellapi type TForm1 = class(TForm) ListView1: TListView; procedure FormCreate(Sende ...

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

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

  6. 【Delphi入门】文件系统(文件分类 文件文本变量 文件操作 文件流操作)

    文件分类 文本文件(TextFile) & 二进制文件(Flie) 二进制形式存放数据占有存储空间较少,但不直观:文本文件与之相反 文件是由相同类型的数据元素组成的序列.在DELPHI中对文件 ...

  7. java大文件读写操作

    转载自:http://blog.csdn.net/akon_vm/article/details/7429245 RandomAccessFile RandomAccessFile是用来访问那些保存数 ...

  8. C语言文件读写操作主要函数及其用例

    C语言把磁盘文件看成是字符(或字节)的序列,按照存储信息的形式来说,文件主要是有文本文件和二进制文件.文本文件由一个个字符组成,每个字节存放一个ASCII码制,代表一个字符.二进制文件把内存中的数据按 ...

  9. Java之文件流操作的文件读写

    Java之文件流操作的文件读写 本人非常喜欢Java的代码风格,今天记录一下文件字符串的读写,但是Java对于 制作exe文件非常不友好,而本人业务的要求,基本上都是制作exe文件,或者程序,Java ...

最新文章

  1. tomcat mysql 中文乱码_tomcat 中文乱码, mysql 中文乱码_MySQL
  2. 新手必看,17 个常见的 Python 运行时错误
  3. 2021软科世界大学学术排名发布!哈佛蝉联全球第一,清华位居国内榜首
  4. 这一行代码,很有温度!
  5. python的优缺点-Python语言的优点和缺点 - 深度剖析
  6. python输出所有素数_Python实现输出某区间范围内全部素数的方法
  7. Lazada代运营怎么样?需不需要找?如何选择一家靠谱的公司
  8. 在ubuntu上安装apc扩展
  9. java script 添加控件,【更新】GLG工具包Visualization and HMI Toolkit更新至v3.6,支持Java Script...
  10. Jenkins 安装与使用--实例
  11. html语义化有哪些优点,语义化的HTML结构到底有什么好处?
  12. Corba传值包含中文解决
  13. python获取命令行参数_【整理】Python中如何获得并处理命令行参数
  14. json文件解析工具_JSON格式的文本文件,怎么解析不成功?
  15. Java线程的5种状态及切换(透彻讲解)
  16. 汇编实验五 编写、调试具有多个段的程序
  17. FreeTextBox设置编辑页面
  18. dell R740secure boot_凯诺 10月11日 DELL 电脑报价
  19. 东南部海域有7、8级大风 华北平原大气扩散条件转差
  20. exter与static的用法

热门文章

  1. java调用外联服务用xml,Spring IOC 依赖注入的两种方式:XML和注解
  2. linux 进程与锁,linux 中的进程与锁
  3. oracle改了包怎么保存,Oracle存储过程、包、方法使用总结(推荐)
  4. python 东哥 with open_python 连接redis cluster
  5. html 登陆sql server,jsp实现注册与登录页面+sqlsever2008
  6. java afconsole_Java ——基础语法
  7. 抖音右上角一个小黄点是什么_抖音官方入驻视频号,释放了一个什么样的信号?...
  8. 清华计算机自主招生试题,2017年清华大学自主招生笔试题
  9. CSDN挑战编程——《金色十月线上编程比赛第二题:解密》
  10. 力扣53. 最大子序和