http://www.cnblogs.com/hnxxcxg/p/3691742.html

二进制文件(也叫类型文件),二进制文件是由一批同一类型的数据组成的一个数据序列,就是说一个具体的二进制文件只能存放同一种类型的数据。
type 
TMember = record 
Name : string[10]; 
eMail : string[20]; 
Posts : LongInt; 
end;

var Members : array[1..50] of TMember; 
向磁盘存储信息之前我们需要定义一个二进制类型文件的变量名,下面的代码声明一个名为F的类型文件变量。 
var F : file of TMember; 
在Delphi中,为了建立一个二进制文件,需要使用这样的语法:var SomeTypedFile : file of SomeType ; 
这个文件的基类型(SomeType)可以是标准类型(比如整型),也可以是数组或记录类型,但是不能为长字符串、动态数组、类、对象或者是一个指针。

var F : file of TMember; 
i : integer ; 
begin 
AssignFile(F,'Members.dat'); 
Rewrite(F); 
try 
for i:= 1 to 50 do Write (F, Members[ i ]); 
finally 
CloseFile(F); 
end; 
end;

为了处理“Members.dat”文件记录的所有数据,必须使用如下形式的代码:

var Member: TMember 
F : file of TMember; 
begin 
AssignFile(F,'Members.dat'); 
Reset(F); 
try 
while not Eof(F) do begin Read (F, Member); 
{这里可以对论坛成员信息进行相关处理} 
end; 
finally 
CloseFile(F); 
end; 
end;

二进制文件还可以使用标准的Seek过程实现随机访问,Seek过程可以指定文件当前位置的跳转。利用FilePos函数和FileSize函数可以返回文件的当前位置以及当前文件的大小(就是记录的条数)。

{返回到文件开头也就是第一条记录开始处} 
Seek(F, 0); 
{直接到第五条记录处} 
Seek(F, 5); 
{到文件结尾处也就是最后一条记录结束的地方} 
Seek(F, FileSize(F));

var
Myrec:TMyrec;
Rec:TPersonRec;
Reccount:integer;
begin
Myrec := TMyrec.Create(Apppath+'History.dat',fmOpenRead or fmShareDenyWrite);
Myrec.first;
Reccount:=Myrec.GetNumRecs;
for i:=1 to Reccount do
begin
Myrec.ReadRec(Rec);
Rec.xxxx;
//Myrec.AppandRec(Rec); 
Myrec.nextRec;
end; 
end;

var
Myrec:TMyrec;
Rec:TPersonRec;
Reccount:integer;
begin
Myrec := TMyrec.Create(Apppath+'History.dat',fmOpenRead or fmShareDenyWrite);
Myrec.first;
Reccount:=Myrec.GetNumRecs;
for i:=1 to Reccount do
begin
Myrec.ReadRec(Rec);
Rec.xxxx;
//Myrec.AppandRec(Rec); 
Myrec.nextRec;
end; 
end;

最新文章

  1. React Native初探
  2. 应用jacob组件造成的内存溢出解决方案(java.lang.OutOfMemoryError: Java heap space)
  3. usermod
  4. Citrix 虚拟化笔记
  5. XListView理念
  6. 现在不能使用foxmail同步qq记事本功能,可能是对字数的大小有限制
  7. 【BZOJ】2049: [Sdoi2008]Cave 洞穴勘测(lct/并查集)
  8. DirectX 发展历程
  9. cubieboard中使用py-kms与dnsmasq搭建局域网内全自动KMS激活环境
  10. 安卓Handler机制的例子
  11. WCF学习笔记(基于REST规则方式)
  12. Python第三天 序列 数据类型 数值 字符串 列表 元组 字典
  13. 【java设计模式】【创建模式Creational Pattern】简单工厂模式Simple Factory Pattern(静态工厂方法模式Static Factory Method Pattern)
  14. jQuery中append appendTo prepend prependTo insertBefore insertAfter after before之间的区别
  15. Ubuntu 18.04 启动root账号并授权远程登录
  16. 【微信小程序】模仿58同城页面制作以及动态数据加载
  17. IDEA从SVN中导入多模块项目
  18. 【python学习-5】面向对象的python
  19. Lifyray笑傲江湖之API总结TextUtil
  20. ZH奶酪:最简单的Django安装方法(Windows 7)

热门文章

  1. 【UML】状态图介绍
  2. Access-Control-Allow-Methods: OPTIONS & CORS
  3. 【bzoj3514】Codechef MARCH14 GERALD07加强版 LCT+可持久化线段树
  4. Luogu3731 HAOI2017新型城市化(二分图匹配+强连通分量)
  5. python构建一个项目
  6. (转)用python获取页面返回的cookie
  7. [洛谷P1528] 切蛋糕
  8. 【20160815】noip模拟(未完)
  9. 【uva11732-"strcmp()" Anyone?】Trie
  10. 金中欢乐赛 A题