Delphi文件操作-读文件-写文件-操作文件

原文来自: 100脚本网

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

时间: 2024-10-12 21:23:57

Delphi文件操作-读文件-写文件-操作文件的相关文章

WPF程序中App.Config文件的读与写

原文:WPF程序中App.Config文件的读与写 WPF程序中的App.Config文件是我们应用程序中经常使用的一种配置文件,System.Configuration.dll文件中提供了大量的读写的配置,所以它是一种高效的程序配置方式,那么今天我就这个部分来做一次系统性的总结. App.Config文件是系统默认的应用程序配置文件,在我们使用后进行编译时会生成"程序集名称+.exe.config"文件,其本质上也是一个XML文件,在我们的应用程序中添加应用程序配置文件后,默认生成下

java中文件的读与写

最近一直在学习java中如何读取和写出文件,看了java API之后,发现在java.io中有很多关于文件读与写的类,下面就介绍几个经常用到的. 首先是:InputStream和OutputStream,API中说它俩是所有抽象类表示字节输入输出流的超类,所以在它们下面派生了很多子类.例如:FileInputStream和OutputStream等等.这些类都是以单字节的形式读入数据的,所以如果读入的数据中有中文字符,那么就会出现中文乱码现象. 其次是:Reader和Writer,这两个类是用于

利用FileChannel完成文件的读、写、复制

内容:通过NIO中的FileChannel完成文件的读.写.复制. public class NioFileCopy { private RandomAccessFile aFile = null; private FileChannel inChannel = null; private final ByteBuffer buf = ByteBuffer.allocate(1024); public void doWrite() throws IOException { aFile = new

Dom4j 读取一个XML文件和将String写成XML文件

dom4j保存文件xml格式和读取XML文件内容,代码如下: package com.qmjs.imut import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; import org.apache.log4j.Logger; import org.dom4j.Document; import org.dom4j.DocumentHelper; i

python 文件操作读、写、追加的区别

打开文件的常用模式有: r ,只读模式[默认] w,只写模式[不可读:不存在则创建:存在则清空内容:] a, 追加模式[可读: 不存在则创建:存在则只追加内容:] "+" 表示可以同时读写某个文件 r+, 读写[可读,可写][可理解为先读后写,不擦除原文件内容,指针在0] w+,写读[可读,可写][可理解为先写后读,擦除原文件内容,指针在0] a+, 写读[可读,可写][不擦除原文件内容,但指针直接到最后,读取原内容先重置指针] 模式 可做操作 若文件不存在 是否覆盖 指针位置 r 只

python文件处理-读、写

Python中文件处理的操作包括读.写.修改,今天我们一起来先学习下读和写操作. 一.文件的读操作 例一: #文件读操作 f = open(file="first_blog.txt",mode = 'r',encoding='gbk') #'r'表示只读模式(打开仍然为文件),encoding = 'gbk'表示原文件的存储格式为'gbk',打开时必须告诉程序将gbk转成unicode(python3编码默认Unicode) data = f.read() # 读取所有内容,内容是已经

第八天 文件的读,写,追加,读写,写读,seek()光标的移动,修改文件以及另一种打开文件的方式

主要内容:    1.初始文件操作 2.只读( r,rb ) 3.只写( w,wb ) 4.追加( a ,ab) 5.读写( r+ ) 6.写读( w+ ) 7.追加写读 ( a+ ) 8.其他操作方法 9.文件的修改以及另一种打开文件句柄的方式 一.初始文件的操作    使用python来读写文件是非常简单的操作. 我们使用open()函数来打开?个文件, 获取到文件句柄. 然后通过文件句柄就可以进行各种各样的操作了. 根据打开方式的不同能够执行的操作也会有相应的差异. 打开文件的方式: r,

9.python-ini文件使用(读和写)

注意事项: 1.读文件: read(filename):读取ini文件中的内容 sections():得到所有section,返回列表形式 options(section):得到给定section的所有option items(section):得到指定section的所有key-value get(section,option):得到section中的option值,返回str类型 get(section,option):得到section中的option值,返回int类型 2.写文件: ad

python-ini文件使用(读和写)

注意事项: 1.读文件: read(filename):读取ini文件中的内容 sections():得到所有section,返回列表形式 options(section):得到给定section的所有option items(section):得到指定section的所有key-value get(section,option):得到section中的option值,返回str类型 get(section,option):得到section中的option值,返回int类型 2.写文件: ad

文件读和写的操作及区别

Python对文件操作:write和writelines的区别1 write()需要传入一个字符串或者变量做为参数,否则会报错2 writelines()既可以传入字符串又可以传入一个字符序列,并将该字符序列写入文件3 注意必须传入的是字符序列,不能是数字序列(卡在这里搞了半天)read() #一次性读取文本中全部的内容,以字符串的形式返回结果readline() #只读取文本第一行的内容,以字符串的形式返回结果readlines() #读取文本所有内容,并且以列表的格式返回结果,一般配合for