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;
|
请发表评论