Delphi读写⼆进制⽂件
⼆进制⽂件(也叫类型⽂件),⼆进制⽂件是由⼀批同⼀类型的数据组成的⼀个数据序列,就是说⼀个具体的⼆进制⽂件只能存放同⼀种类型的数据。
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);
delphi app{这⾥可以对论坛成员信息进⾏相关处理}
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);
<;
//Myrec.AppandRec(Rec);
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);
<;
//Myrec.AppandRec(Rec);
end;
end;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。