Delphi关于记录文件的操作
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);
Delphi关于记录文件的操作的更多相关文章
- delphi 基础之三 文件流操作
文件流操作 Delphi操作流文件:什么是流?流,简单来说就是建立在面向对象基础上的一种抽象的处理数据的工具.在流中,定义了一些处理数据的基本操作,如读取数据,写入数据等,程序员是对流进行所有操作的, ...
- Delphi对ini文件的操作
一.INI文件的结构:; 注释[小节名]关键字=值 INI文件允许有多个小节,每个小节又允许有多个关键字, “=”后面是该关键字的值. 值的类型有三种:字符串.整型数值和布尔值.其中字符串存贮在INI ...
- Linux学习记录--文件IO操作相关系统编程
文件IO操作相关系统编程 这里主要说两套IO操作接口,各自是: POSIX标准 read|write接口.函数定义在#include<unistd.h> ISO C标准 fread|fwr ...
- delphi对ini文件的操作(转载 万一)
ini 文件操作记要(1): 使用 TIniFileunit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Gr ...
- Delphi 对ini文件的操作
界面如图: 代码如下: unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Vari ...
- DELPHI删除记录文件
http://blog.itpub.net/729024/viewspace-564890/ DBGrid1.SelectedRows.Delete;
- delphi 文件夹操作(监控)
delphi 监控文件系统 delphi 监控文件系统 你是否想为你的Windows加上一双眼睛,察看使用者在机器上所做的各种操作(例如建立.删除文件:改变文件或目录名字)呢? 这里介绍一种利用Win ...
- delphi 文件夹操作
文件的拖放和打开拖拽 user shellapi type TForm1 = class(TForm) ListView1: TListView; procedure FormCreate(Sende ...
- delphi 文件的操作:重命名、复制、移动、删除
Delphi 文件的操作:重命名.复制.移动.删除第一种方法: RenameFile('Oldname', 'Newname'); CopyFile(PChar('Oldname'), PChar(' ...
随机推荐
- C++概念整理
/* 面向对象: 多态, 继承 封装 */ #include <stdio.h> #include <stdlib.h> //一旦有了纯虚函数,该对象就不能实例化了. #def ...
- Directory的GetFiles方法
想实现一个功能 :比如多个业务审批流程公用一个审批表的时候,有一个提示审批信息的页面 ,点击该页面不同的业务审批流程记录的时候,跳转到不同业务流程的详细显示界面 额 这样说 貌似以后我自己也看不明白 ...
- XPath注入笔记
XPath注入 XQuery注入 测试语句:'or '1'='1 利用工具: Xcat介绍 Xcat是python的命令行程序利用Xpath的注入漏洞在Web应用中检索XML文档 下载地址:https ...
- 如何使用NPOI 导出到excel和导入excel到数据库
近期一直在做如何将数据库的数据导出到excel和导入excel到数据库. 首先进入官网进行下载NPOI插件(http://npoi.codeplex.com/). 我用的NPOI1.2.5稳定版. 使 ...
- 鼠标滚动事件兼容性 wheel、onwheel
wheelEvent = "onwheel" in document.createElement("div") ? "wheel" : // ...
- npm以及gulp相关操作
在工作流相关的第一篇博客中,我们安装了nodejs的环境,那么nodejs自带的npm是一个功能十分强大的管理器,它已经不仅仅是局限于nodejs的版本管理器了,那么当现在我们可以通过npm来下载我们 ...
- Nim游戏变种——取纽扣游戏
(2017腾讯实习生校招笔试题)Calvin和David正在玩取纽扣游戏,桌上一共有16个纽扣,两人轮流来取纽扣,每人每次可以选择取1个或3个或6个(不允许不取),谁取完最后的纽扣谁赢.Cavin和D ...
- POI中getLastRowNum() 和getLastCellNum()的区别
hssfSheet.getLastRowNum();//最后一行行标,比行数小1 hssfSheet.getRow(k).getLastCellNum();//获取列数,比最后一列列标大1
- 怎样避免 i f 判断过多,全复杂度较高,代码不美观的问题?
没有什么好的设计方式可以实现,减少一个方法中出现几十个 if 匹配的判断? 现在要做一个判断客户是否通过验证的接口. 一共有30多个验证规则的判断, 每个规则对应一个规则号: 这个接口只需要返回是否验 ...
- 样例20-汽车SHOW
观看样例点这里 素材下载 1.设置场景大小为400*3002.执行:文件->导入->导入到库,选择需要的汽车图片文件,将其导入到库面板中3.按照同样的方式,在库面板中导入所需的背景音乐文件 ...