预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共50页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

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