VisualBasic编程中文件的直接访问和处理技术

(整期优先)网络出版时间:2008-10-20
/ 2

VisualBasic编程中文件的直接访问和处理技术

孙孟华

(江西护理职业技术学院,江西南昌330002)

摘要:VisualBasic是一门功能强大的程序语言,对于文件的访问和处理它提供了多种实用模块和插件。根据不同程序开发设计的需要,编程时往往需要将文件的访问和操作隐匿于程序中直接执行,而无需通过控件和插件以数据库访问操作得以实现。VisualBasic编程中如何实现文件的直接访问和处理成为令VB编程爱好者和VB程序设计者头痛的技术性难题。

关键词:文件;顺序;随机;二进制;访问模式

VisualBasic中文件处理通过使用Open语句以及其它相关语句和函数来实现的机制将逐步被淘汰而转向使用FSO对象模型机制。如果设计应用程序使用数据库文件,那么在应用程序中就不用提供直接的文件访问。Data控件与绑定控件都可以向数据库写入数据以及从中读取数据,比直接访问技术容易实现。然而,实际编程中经常会需要读写文件而不是数据库。故实际编程中对于文件的直接访问和处理技术对于VB程序员是十分必要,也是十分必须的。

所谓文件,是指记录在外部存储介质上的数据的集合。使用文件存放数据,可以避免内存容量的限制,存储大批量的数据,在应用程序中对数据的读出和写入都比较的方便。

对于计算机系统来说,文件是由一系列相关联的字节构成,而对于应用程序来说,文件是由记录构成的。

文件构成体系

字符(Character):字符是构成文件的最基本的单位,可以是数字、字母、符号或字节。

字段(Field):字段也称域,由若干个字符组成,用来表示一个数据信息。

记录(Record):记录由若干个字段组成,用来表示一组相关的数据信息。

文件(File):文件由若干条记录组成。

依据不同的标准,文件的分类有所不同。根据文件数据的使用,文件可以分为数据文件和程序文件。数据文件中存放普通的数据,如商品信息等,这些数据可以通过特定的程序存取;程序文件中存放计算机可以执行的程序代码,包括源文件和可执行文件等,如VB中的*frm、*vbp、*exe等都是程序文件。根据数据的编码方式,文件可以分为ASCII文件和二进制文件。ASCII文件又称为文本文件,字符以ASCII方式存放,Windows中的字处理软件建立的就是ASCII文件;二进制文件中的数据是以字节为单位存取的,不能用普通的字处理软件建立和修改。

VisualBasic提供了三种数据访问模式,即顺序访问,随机访问和二进制访问,相应地文件也可以分为顺序存取文件、随机存取文件和二进制存取文件。

顺序存取文件又称顺序文件,其中的记录是顺序存放的。建立文件时将记录一个接一个地放入文件。读取记录时必须从第一个记录开始一个一个读取,直到读取到所需的记录,也就是说在顺序文件中,只知道第一个记录所在的位置。修改记录时必须把整个文件所有的记录读入内存,修改后再放入文件中。顺序文件一般是ASCII文件,以换行作为记录的结束。顺序文件占用空间小,操作方便。

随机存取文件又称为随机文件或直接文件,这种文件中的每个记录都有一个记录号,在存放和读取时,可以通过记录号直接存取文件中的每一个记录。在随机文件中,每个记录的长度是相同的,且记录之间不需要特殊的分隔符。随机文件可以是ASCII文件,也可以是二进制文件。随机文件存取速度快,更容易更新。

二进制访问文件的存取是以字节为单位的,允许用户根据字节数来定位操作的位置,和随机文件类似。二进制访问文件一般是二进制文件,也可以是ASCII文件。

对于文件的访问以下函数适用于所有三种类型的文件访问:

Dir目录操作

FileLen(文件长度)FreeFile(返回系统未使用的文件号)FileCopy(复制一个文件)

FileDataTime(文件数据时间)Seek(设置下一个读写位置)GetAttr(获取对象引用)

SetAttr(设置对象引用)Loc(返回文件最近一次读写位置)LOF返回文件长度(字节数)

EOF(判断文件指针是否到达文件末尾)

适用于三种直接文件访问类型的各种文件访问语句和函数

顺序文件的打开和关闭:

OpenFileName[ForMode][Accessaccess][LockType]As[#]FileNumber[Len=RecordLength]

Close[[#]FileNumber][,[#]FileNumber]

顺序文件的读取:

Input#FileNumber,VarName[,var...]

Input#(Length.#FileNumber)

顺序文件的写入:

Print#FileNumber,[OutputList][,|;]

Write#FileNumber,[OutputList]

随机文件的打开和关闭:

OpenFileNameForRandomAs#FileNumberLen=记录长度

Close[[#]FileNumber][,[#]FileNumber]

随机文件的读写:

Get#FileNumber,[Recorder],VarName

Put#FileNumber,[Recorder],VarName

二进制文件的访问:

OpenFileNameForBinaryAs#FileNumber

Close[[#]FileNumber][,[#]FileNumber]

对于二进制文件的读写同随机文件一样也可用Get#和Put#语句。

Get#FileNumber,Position,VarName

Put#FileNumber,Position,VarName

在二进制文件的存储方式中经常用到Seek函数和Seek语句。

Seek(FileName)Seek函数用于返回当前文件指针的位置。

Seek[#]FileName,PositionSeek语句用来设置文件指针。

参考文献

[1]张树兵.VisualBasic6.0中文版入门与提高[M].北京:清华大学出版社,1999,4.

[2]钱雪忠.新编VisualBasic程序设计实用教程[M].北京:机械工业出版社,2004,8.

[3]林永,张乐强.VisualBasic6.0用户编程手册[M].北京:人民邮电出版社2002.1

[4]宗大华.VisualBasic.NET6.0编程基础教程.[M].北京:科学出版社,2000,5.