欢迎来到天天文库
浏览记录
ID:33848730
大小:210.86 KB
页数:50页
时间:2019-02-28
《delphi经典编程入门(6)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第六章文件管理(一)页码,1/50[Delphi园地http://www.delphifans.com]第六章文件管理(一) 文件是同一类型元素的有序集合,是内存与外设间传输数据的渠道。一些外设如显示器、键盘、打印机等都可以看作文件,但最常用的还是磁盘文件,这也是本章我们主要讨论的对象。 Delphi继承了ObjectPascal的文件管理功能,并有很大的发展,其中最主要的是提供了用于文件管理的标准控件,同时也提供了更多的文件管理函数。利用Delphi的强大功能,开发一个自己的文件管理系统就成为很容
2、易的事。 本章首先介绍Delphi文件管理的基本概念和标准过程/函数,并提供了一个记录文件的应用实例,这是从我们实际课题开发中提取出来的。而后介绍Delphi提供的文件控件的使用方法。最后提供的一个综合例程MDI文件管理器则是对Delphi文件管理功能的综合应用。6.1文件类型和标准过程 Delphi同ObjectPascal一样支持三种文件类型,即:文本文件、记录文件、无类型文件。6.1.1文本文件 文本文件类型的变量用如下方法声明:varTextFileVar:Text; 文本文
3、件是以行为单位进行读、写操作的。由于每一行长度不一定相同,不能计算出给定行在文件中的确切位置,因而只能顺序地读写。而且文本文件只能单独为读或写而打开,在一个打开的文本文件上同时进行读、写操作是不允许的。6.1.1.1文本文件的打开、关闭 文本文件的打开需要两个步骤:(1).文件变量与文件名关联;(2).初始化读写。 联文件变量与文件名调用AssignFile标准过程:AssignFile(TextFileVar,FileName); FileName既可以是全路径名,也可以仅是文件名。对于后者系统将在当前
4、目录下查找。 AssignFile是Delphi新提供的一个函数,其功能等价于ObjectPascal中的Assign。而Assign在Delphi中更多地被用作一个方法名。初始化读写有三种方式:1.Reset:为读打开文件并把文件指针移动到文件首;2.Rewrite:为写创建一个新文件;3.Append:为写打开存在的文件并把文件指针定位在文件尾。 当使用Reset或Append过程而文件不存在时将会引发一个I/O异常。有关I/O异常的处理请参看本章例程和第十二章中的介绍。 文件的关闭很简单,
5、只须调用CloseFile过程即可。 虽然Delphi应用程序在退出时会自动关闭所有打开的文件,但自己动手关闭文件可以确保释放文件句柄,并使程序的可移植性增强。 为保持兼容,Delphi也允许用户用Assign建立关联,Close关闭文件。第六章文件管理(一)页码,2/506.1.1.2文本文件的读写 从文本文件中读取信息用Read、Readln两个标准过程。 当读入数值时,Read、Readln假定数值是用一个或多个空格分开的,而不是逗号、分号或其它字符。对如下一条语句:Rea
6、d(TextFileVar,Num1,Num2,Num3); 如果文件中的数值是:100200300 则能够成功读入,而若文件中的数值是100200,300 则Read读入“200,”并试图把它转化成一个数值时会引发一个异常。 当读入字符是字符串时,Read、Readln过程总是读取尽可能多的字符填充到字符串变量中或一直读到行结束符为止。因此从文本文件中读取格式化的字符串数据,必须声明与其长度相匹配的字符串变量。如果要从文件中读取单词,必须先把文件中的每一行读入字符串,然后再从字符串中逐个分析
7、出单词。或者一次只从文本文件中读入一个字符并测试每个字符后是否是单词断开处。 格式化字符串之间的分隔符应读入到一个临时变量中,而字符串与数值、数值与数值间的分隔符读入时会自动识别剔除。对如下一行数据:Mon12:104050定义varDay:string[3];Time:string[5];Num1,Num2:Integer;则须用如下的read语句读入:read(TextFileVar,Day,c,Time,Num1,Num2);C为一个临时字符变量。6.1.1.3文本文件的编辑 在Delphi中实现
8、对一个文本文件的编辑,只须让其与一个Tmemo控件建立关联即可:Memo1.Lines.LoadFromFile(TextFileName);这样在TMemo上所做的一切修改当调用Memo部件的SaveToFile方法后都会反映到文件中去。6.1.2记录文件 记录文
此文档下载收益归作者所有