使用"类型文件"(typed File),创建自己的"数据库"
2008-09-16 11:57
696 查看
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..50] of 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
{go back to the beginning - the first record}
Seek(F, 0) ;
{go to the 5-th record}
Seek(F, 5) ;
{Jump to the end - "after" the last record}
Seek(F, FileSize(F)) ;
更新数据:
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;
如果有一个应用想在硬盘上存储一定的信息,而又不想使用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..50] of 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
{go back to the beginning - the first record}
Seek(F, 0) ;
{go to the 5-th record}
Seek(F, 5) ;
{Jump to the end - "after" the last record}
Seek(F, FileSize(F)) ;
更新数据:
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;
相关文章推荐
- 使用WINDOWS的VBS脚本,创建自己的文件类型!
- 错误:"无法从命名空间绑定的导入"错误消息出现,当您试图通过使用 Web 服务描述语言工具创建 XML Web 服务代理文件时
- 数据库File f = new File("/sdcard/ouling/OuLing.db");// 创建文件
- "ORA-20100: 为 FND_FILE 创建文件 o0003167.tmp 失败"
- "ORA-20100: 为 FND_FILE 创建文件 o0003167.tmp 失败"
- JSP使用Common FileUpload组件实现文件上传及限制上传类型实例代码
- "ASIHTTPRequest"使用报错:ARC forbids explicit...及#import <libxml/HTMLparser.h> file not found
- 使用<input type="file">实现文件上传
- 使用文件模板和向导创建一个类型文件
- 尚未备份数据库 "***" 的日志尾部。如果该日志包含您不希望丢失的工作,请使用 BACKUP LOG WITH NORECOVERY 备份该日志。
- input="file" 浏览时只显示指定文件类型 xls、xlsx、csv
- 使用grunt-init自动创建gruntfile.js和package.json文件
- <input type="file" />浏览时只显示指定文件类型
- RandomAccessFile(随即读取)操作文件有4种模式:"r"、"rw"、"rws" 或 "rwd"
- 使用hsql建立本地文件类型存储的数据库
- asp.net上传文件使用fileupload控件,判断文件类型和大小,取得文件路径时报错【System.IO.FileNotFoundException:未能找到文件】的解决办法
- php上传常见文件类型对应的$_FILES["file"]["type"]。
- MySql使用全记录5 -----解决Windows下用命令导入sql文件时"Failed to open file"的问题
- 使用rails高效开发之快速创建控制器 视图 模型和数据库文件
- Html input file控件使用accept过滤 限制的文件类型