- 1
- 0
- 约9.07千字
- 约 14页
- 2018-06-09 发布于福建
- 举报
Visual Basic程序的设计导学list07
第7章 文 件 操 作
文件是永久存储在磁盘等介质上的一组数据的集合。很多程序需要读写磁盘文件。这就涉及到如何建立文件,如何从文件中读数据,如何向文件写数据等问题。本章讨论与文件操作相关的内容。
7.1 文 件 类 型
在VB中根据文件的结构和访问方式,可将文件分为三类:顺序存取文件、随机存取文件和二进制存取文件。下面分别予以介绍。
7.1.1 顺序存取文件
顺序存取是将要保存的数据,依序逐个字符转成ASCII字符,然后存入磁盘。以顺序存取的方式保存数据的文件叫做顺序存取文件,简称顺序文件。顺序文件存储格式如图7.1所示。
图7.1 顺序文件存储格式
通常记录与记录之间的分界字符为回车符,记录中字段与字段之间的分界字符为逗号。
在顺序文件中查找某个记录必须从文件头开始找起,逐个比较,直到找到目标为止。若要修改某个记录,则需将整个文件读出来,修改后再将整个文件写回磁盘,因此很不灵活。但由于顺序文件是按行存储,所以它们对需要处理文本文件的应用程序来说就是非常理想的了。例如,一般的程序文件(如.C程序文件)都是顺序文件。
顺序文件的优点是操作简单,缺点是无法任意取出某一个记录来修改,一定得将全部数据读入,在数据量很大时或只想修改某一条记录时,显得非常不方便。
7.1.2 随机存取文件
以随机存取方式存取的文件称为随机文件。随机文件很像一个数据库,它由大小相同的记录组成,每个记录又由字段组成,字段中存放着数据。其存储结构如图7.2所示。
每个记录前都有记录号表示此记录开始。在读取文件时,只要给出记录号,就可迅速找到该记录,并将该记录读出;若对该记录做了修改,需要写到文件中时,也只要指出记录号,新记录将自动覆盖原有记录。所以,随机文件的访问速度快,读、写、修改灵活方便,但由于在每个记录前增加了记录号,从而使其占用的存储空间增大。
图7.2 随机文件存储格式
7.1.3 二进制存取文件
在二进制文件中的数据均以二进制方式存储,存储单位是字节(随机文件按记录存取,顺序文件按行存取)。
在二进制文件中,能够存取任意所需要的字节,可以把文件指针移到文件的任何地方,因此,这种存取方式最为灵活。
7.2 顺序存取文件
由于顺序文件按行存储,通常它是一个文本文件,数字和字符均以ASCII码形式存储。下面讨论顺序文件的操作语句。
7.2.1 文件的打开
在对文件进行任何操作之前,必须打开文件,同时要通知操作系统对文件进行读操作还是写操作,将数据存到什么地方。打开文件用Open语句。其使用语法如下:
Open文件名[For模式[Access访问方式][Lock]As[#]文件号[Len=记录长度]
其中,文件名是指要打开的文件,可包含驱动器名及路径名。模式是说明文件打开方式,对顺序文件而言,有三种模式:
· Output(输出):相当于写文件。
· Input(输入):相当于读文件。
· Append(添加):相当于将数据添加在文件尾部。
访问方式是说明打开文件所允许的操作,有三种方式:
· Read:只读。
· Write:只写。
· ReadWrite:读写皆可,只适用于顺序文件的Append模式。
Lock参数是指明其他进程对打开文件所允许的操作,有三种方式:
· Shared:可对此文件读写。
· LockRead:不允许读此文件。
· LockWrite:不允许写此文件。
文件号是一个1~255的整数,用于表示这个文件。新的文件号可用FreeFile()函数获得。
文件长度是小于32 767的整数。对顺序文件来说,它是指缓冲区分配的字符个数;对随机文件来说,它是文件中记录的长度。
7.2.2 向文件中写数据
要建立一个顺序文件或打开一个顺序文件,向文件中写数据,应该用Output模式打开文件,然后用输出命令写入数据。
以Output模式打开文件,就是建立文件;若文件已存在,则删除旧文件,建立新文件。以Append模式打开文件与此很相似,二者的差别在于:以Append模式打开文件时,如果该文件已经存在,VB并不删除它,随后的输出命令把新行追加到该文件尾部。写文件的输出命令有如下两种:
· Print #文件号,字段1[;][,][;字段2[;][,]……
· Write #文件号,字段1[,字段2]……
使用Print语句时,必须显式地写分隔符逗号,以区分每个字段,而使用Write语句,不用显式地写出分隔符。用如下语句建立文件try.txt,并把文本框txtMyText的内容写入该文件中:
FileNum=FreeFile()
Open try.txt For 0utput As FileNum
Print #FileNum,txtMyText.Text
Close FileNum
7.2.3 从文件中读取数据
要读顺序文件
原创力文档

文档评论(0)