使用"类型文件"(typed File),创建自己的"数据库"

from :http://delphi.about.com/od/fileio/a/fileof_delphi.htm

如果有一个应用想在硬盘上存储一定的信息,而又不想使用paradox等数据库文件,而且不想用textfile等易让其他人读取的文件进行存储,那怎么办?Delphi可以提供typed files 让你解决这个问题。

一、有关files:Delphi里提供了三种类型的Files,分别是typed / text /untyped。

typed可以存储一些有结构的文件,如integer/double/record等。

text可以存储ASCII字符。并以CR/LF (#13#10)为行结束。

untyped可以存储"least impossible"的结构类型信息。

二、使用typed File.

type
  TMember 
= record
    Name : 
string[50];
    eMail : 
string[30];
    Posts : LongInt;
end;

var Members : array[1..50of TMember; 
var
  F : 
file of TMember;

向文件中写数据:

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

读为数据:

var
  Member: TMember
  F : 
file of TMember;
begin
 AssignFile(F,
'members.dat') ;
 Reset(F) ;
 
try
  
while not Eof(F) do begin
   Read (F, Member) ;
   
{DoSomethingWithMember;}
  
end;
 
finally
  CloseFile(F) ;
 
end;
end

定位至某一记录:

Code

更新数据:

procedure ChangeEMail(const RecN : integer; const NewEMail : string) ;
var DummyMember : TMember;
begin
 
{assign, open, exception handling block}
 Seek(F, RecN) ;
 Read(F, DummyMember) ;
 DummyMember.Email :
= NewEMail;
 
{read moves to the next record, we have to
 go back to the original record, then write
}
 Seek(F, RecN) ;
 Write(F, DummyMember) ;
 
{close file}
end;
原文地址:https://www.cnblogs.com/samsonleung/p/1291561.html