VB文件操作 下载本文

VB文件操作(一)

2009年12月01日 星期二 12:28

在程序设计中,文件是十分有用和不可缺少的。由应用程序产生或处理过的数据,往往在应用程序结束以前仍需保留,或者为了存取方便,提高上机效率,需要将由输入设备输入的数据保存在存储介质上(如磁盘,磁带等)。这些数据是以文件的方式保存在存储介质上的,需要读取数据时可以从外存储器调出,需要保存时可以由内存写到外存。在程序中可直接对文件进行处理,可以保存、访问它所处理的数据,也可以使其它程序共享这些数据。

VB具有强大的文件处理能力,可以处理顺序文件、随即文件和二进制文件,同时提供了与文件处理有关的控件,也提供了大量与文件管理有关的语句、函数。 本章介绍文件的结构、三种文件类型、VB对文件和目录维护的主要语句和函数、VB程序对文件的操作方法(文件系统对象)。

6.1 文件

在VB程序中,需要输入少量数据,可通过程序中直接赋值来完成,或通过输入函数以获取数据(如使用函数InputBox),但输入大量的数据时,这些方法易造成数据输入和数据存储不方便,在重复输入相同的数据时,易造成数据不一致。鉴于这种情况,可以将这些大量的数据存储在一个或多个文件中,使用时再从相应的文件中读取。

通常情况下,计算机处理的大量数据都是以文件的形式存放在外部介质(如磁盘)上,操作系统也是以文件为单位对数据进行管理。当访问外部介质上存储的数据时,先按文件名找到所需要的文件,再从该文件中读取相关数据;在外部介质中存入数据时,也必须先建立一个文件,才能向它写入数据。 在介绍文件结构和类型之前,简单介绍对文件命名的基本规则。在Visual Basic中,文件说明的一般格式为: 设备名:文件引用名 例如: D:myfile.abc

这里的“D:”是设备名,而\

设备名是存放文件的设备的名称,如磁盘、磁带、打印机等。在微机中,存放文件的主要设备是磁盘,其名称通常为A:,B:,C:,D:等,分别代表A,B,C,D等驱动器。

在DOS环境下,文件引用名由两部分组成,即文件基本名和扩展名。其中文件基本名常以字母开头,最多不超过8个字符;扩展名是可选的,最多不超过3个字符;在文件基名和扩展名之间有一个圆点。通常把这种文件名称为“8.3”格式。如上例中的“myfile.abc”

在Windows中可以使用长文件名,其长度最多不超过255个字符,并能自动维护传统的“8.3”格式的文件名。

下列字符可用做文件基本名和扩展名: (1)英文字母:a~z、A~Z (2)数字:0~9

(3)特殊字符:$ # & @ ! % ( ) _ - | ,^ ~ /

Visual Basic窗体文件的扩展名为.frm,工程文件的扩展名为.vbp,标准模块文件的扩展名为.bas,可执行文件的扩展名为.exe,等等。用户可使用自己的扩展名,但不要与系统使用的扩展名相矛盾。

完整的文件说明由设备名和文件引用名构成。对于磁盘文件来说,还可以含有

路径。例如:

D:\\textfile\\exercise.txt ..\\grades.qtr 6.1.1 文件的结构

为了有效地对数据进行存储和读取,文件中的数据必须以某种特定的格式存储,这种特定的格式就是文件的结构。

Visual Basic的文件由记录组成,记录由字段组成,字段又由字符组成。 1.字符(character):是构成文件的最基本单位。字符可以是数字、字母、特殊符号或单一

字节。这里所说的“字符”一般为西文字符,一个西文字符用一个字节存放。如果为汉字字符,包括汉字和“全角”字符,则通常用两个字节存放。也就是说,一个汉字字符的存储大小相当于两个西文字符的存储大小。一般把用一个字节存放的西文字符称为“半角”字符,而把汉字和用两个字节存放的字符称为“全角”字符。注意,VisualBasic 6.0支持双字节字符,当计算字符串长度时,一个西文字符和一个汉字都作为一个字符计算,但它们所占的内存空间是不一样的。例如,字符串“VB程序设计语言”的长度为8,而所占的字节数为14。

2. 字段(field):也称域。字段由若干个字符组成,用来表示一项数据。例如邮政编码“450002”就是一个字段,它由6个字符组成;而姓名“张前”也是一个字段,它由2个汉字组成。

3.记录(record):由一组相关的字段组成。例如在通信录中,每个人的姓名、单位、地址、电话号码、邮政编码等构成一个记录。

4.文件(file):文件由记录构成,一个文件含有一个以上的记录。例如在通信录文件中有129个人的信息,每个人的信息是一个记录,129个记录构成一个文件。

例如,一居民区人员登记可整理一个二维表的形式,如表6-1所示。在这个表中,每位居民的信息是一个记录,它由“身份证号”、“姓名”、“性别”、“籍贯”、“职业”、“联系方式”等6个数据项构成。

表6-1 居民区人员登记表(jmdjb.dat)

身份证号 姓名 性别 籍贯 职业 联系方式 101 小米 女 北京 企业主管 010 102 张明哲 女 上海 研究员 021 ??? ??? ??? ??? ??? ??? 129 张前 男 香港 公务员 852

读者可以根据以上定义分别找出各记录的数据信息。需要注意的是:其中有一个字段称为“关键字”,能够唯一的识别出对应的记录,如表6-1中的“身份证号”字段。

6.1.2 文件的种类和存取类型

VB有三种文件:顺序文件、随机文件和二进制文件。存取一个文件时,可根据文件所含数据类型的不同,采用不同的存取方式,对应的文件存取类型有顺序存取、随机存取和二进制存取。

● 顺序文件:存入一个顺序文件时,依序把文件中的每个字符转换为相应的ASCII码存储;读取数据时必须从文件的头部开始,按文件写入的顺序,一次全部读出。不能只读取它中间的一部分数据。用顺序存取方式形成的文件称为

顺序文件,顺序存取方式规则最简单。

顺序存取方式适合以整个文件为单位存取的场合。主要用于文本文件,也最适合于文本文件,因为处理文本数据时,都是整篇文章调出来修改,然后再整篇文章重新保存,很少有只调出第几行,修改后再存回第几行的情况。采用顺序存取方式的例子很多,如Windows的记事本、书写器等。

顺序文件也可以记录为单位,每个记录也可划分为若干个字段,但这样的数据结构一般不按顺序方式存取。

● 随机文件:随机存取的文件由一组固定长度的记录组成,每条记录分为若干个字段,每个字段的长度固定,可以有不同的数据类型。一般用自定义数据类型来建立这些记录。用随机存取方式形成的文件称为随机文件。

随机文件中每个记录有一个记录号,通过指定记录号,可随机地访问每一笔数据,不象顺序文件那样必须按顺序存取。随机文件适合于以记录为单位存取的场合。

● 二进制文件:二进制存取方式可以存储任意希望存储的数据。它与随机文件很类似,但没有数据类型和记录长度的限制。用二进制存取方式形成的文件称为二进制文件。

在随机文件中,有些字符型字段不同记录的长度相差很多,但为了使最长的字符串能够存入,就必须把该字段的长度说明为最长字符串的长度,这样就会浪费了大量的存储空间。为了节省存储空间,可以使用二进制存取文件。

对二进制文件,在TYPE类型说明中先不说明长度,待字符串存入时,再计算字符串长度,并用2个字节保存这个长度;读取数据时,先读取长度,再读取字符。因而在记录长度变动较大的情况,用二进制存取方式可节约存储空间。但另一方面,因为它没有固定长度的记录,不能向随机文件那样任意取出第几条记录,必须建立一个索引表来指示每个记录的起始地址,这就给编程带来了困难。

然而VB在其发展的过程中,已有了强大的数据库功能,可利用Data控件、ADO数据控件等使应用程序与数据库连接,从而方便地对数据来回读写,完全可以代替文件直接访问的功能(可参看有关“VB与数据库连接”章节内容)。

6.2 顺序文件

在对使用旧文件或创建新文件前,首先要说明文件存储位置和名字,并指定对文件的处理方式,即指要确定对文件操作的有关属性的属性值。无论用哪种存取方式对数据文件进行操作,都必须先打开文件,然后向文件中写入或读出数据,最后关闭文件。

访问一个顺序文件时,通常是三个步骤:打开文件(若此文件不存在,则要建立一个新的文件)、读取/写入数据、关闭文件。 6.2.1 顺序文件的打开与关闭 1.打开文件语句:Open 语法格式如下:

Open <文件名> For <打开方式> As # <文件号> [ Len = 缓冲区大小 ] 其中:

●Open、For、As、Len等是VB关键字。

●文件名:指定打开的文件名(文件名用字符串表示),包括盘符、路径、文件主名及扩展名。例如:”E:\\MF\\Test.txt”。

●打开方式方式:指定文件的打开方式,打开文件后,只能按指定的方式进行