- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
利用Delphi的FileOfType创建并管理属于你自己的数据库
前言
在程序中,我们需要用一个途径去把一些有规律的信息存储在磁盘上。不能用TXT格式的文件──因为它不是基于“记录”的,而且管理很不方便。 BDE或ADO也就是说Paradox、Access……唉,不列举了──这些我都不想用,尤其不想用BDE。我要用的是ASCII文本文件。Delphi能做到吗?当然能!这就是“File Of”类型文件,或者说files of some type/binary files。 (译者注:与所有的Win32桌面应用程序编译器相比,Delphi有一个很独到的特点:它编译的Exe可以不需要一些公共动态链接库的支持,尽管因此Delphi的EXE文件可能大一点。而VC、C++Builder、VFP等等这些我用过的编译器,却不是这样,它们编译的EXE往往需要打包一些Dll才可以用。那么,我们用Delphi开发数据库程序时,使用BDE、ADO等等引擎,却因此给Delphi蒙羞──BDE、ADO等等,一般都需要单独安装到操作系统中去。) 下面举例演示这个应用。
首先
我们首先要定义一个基类,也就是一个记录结构:
typeTMember = recordName : string[10];eMail : string[20];Posts : LongInt;end;
然后声明一个记录集,假设有5条记录:var Members : array[1..5] of TMember; 在我们读写我们的数据信息前,我们需要声明一个基于我们记录结构的文件变量:var F : file of TMember; 注:在Delphi里,我们声明一个文件变量的一般格式就是:var SomeTypedFile : file of SomeType; 这里所说的基类(Some Type),比如可以是Double、数组、记录。但不能是长字符串格式、动态数组、类类型以及指针。 接下来我们要把我们的“数据库”文件链接到我们的程序里去:AssignFile(F, Members.dat) ; 使用一个“文件”,我们需要这样“打开”它,并调用Reset方法打开一个已存在于硬盘上的文件,用Rewrite方法去创建一个新文件。当文件使用完毕,关闭应用程序之前,我们要记得用CloseFile方法“关闭”它。如果忘记关闭,将引起一个I/O错误。当文件句柄被关闭,此前对它的所有更新操作将应用。 (译者注:上面所说的“文件”,不仅仅包括磁盘文件,而且包括串口、打印机、其他设备……这些都是“文件”。)
写入到文件
假设我们已经填充了Members里的5条记录。那么,接下来就是把这5条记录写入磁盘文件的代码:varF : file of TMember;i : integer;beginAssignFile(F,members.dat) ;Rewrite(F) ;tryfor i:= 1 to 5 doWrite (F, Members[i]) ;finallyCloseFile(F) ;end;end;
从磁盘文件读出所有记录
varMember: Tmember;F : file of TMember;beginAssignFile(F,members.dat) ;Reset(F) ;trywhile not Eof(F) do beginRead (F, Member) ;{DoSomethingWithMember;}end;finallyCloseFile(F) ;end;end; 注:EOF是文件的结束标志。我们通过判断它的真假,来知道哪里是文件里最后的一条记录。
Seeking and Positioning
文件记录通常是要不断更新的。在一般情况下,我们读写一条记录后,游标立即指向下一条记录。我们可以用下面的方法实现在记录间自由移动游标:
{ 回到文件头,即第1条记录 }Seek(F, 0) ;
{ 跳到第3条记录 }Seek(F, 3) ;
{ 跳到文件尾,即最后一条记录的后面 }Seek(F, FileSize(F)) ;
记录的更新
前面我们仅仅学习了如何读写记录。那么如果我们要求找到第10条记录,然后把这条记录的某个字段(如:Email)修改一下,怎么做?请看下面的代码:
procedure ChangeEMail(const RecN : integer; const NewEMail : string) ;var DummyMember : TMember;begin{ assign, open, exception handling 模块略 }Se
您可能关注的文档
- 关于实验班举办假期读书报告会的通知.doc
- 关于大地坐标的相关知识.doc
- 关于容器WEBCache技术及其常规路由会话过程分析.pdf
- 关于希尔排序算法的讨论.pdf
- 关于广义Toda方程的r矩阵方法.pdf
- 关于工作面试时应该注意的问题~英语.ppt
- 关于并口ECP问题的分析和解决.doc
- 关于广义椭圆积分的几个性质.pdf
- 关于成立“网络空间(Cyber Space)”网站的技术报告.doc
- 关于拟可微MPEC问题的最优性条件的某些结果.pdf
- 2024-2025学年桑植一中高一入学分班考试语文作文押题及范文分析.docx
- 2024-2025学年上海市进才中学高一入学分班考试语文作文押题及范文分析.docx
- 中国滴水水表行业市场情况研究及竞争格局分析报告.pdf
- 2024-2025学年上海师大附中高一入学分班考试语文作文押题及范文分析.docx
- 2024-2025学年清华大学附属实验学校高一入学分班考试语文作文押题及范文分析.docx
- 2024-2025学年上海市控江中学高一入学分班考试语文作文押题及范文分析.docx
- 2024-2025学年上海静安外国语中学高一入学分班考试语文作文押题及范文分析.docx
- 2024-2025学年宁波外国语学校高一入学分班考试语文作文押题及范文分析.docx
- 2024-2025学年南通中学高一入学分班考试语文作文押题及范文分析.docx
- 2024-2025学年宁波市鄞州中学高一入学分班考试语文作文押题及范文分析.docx
文档评论(0)