Spc(n) 用来在输出数据中插入空白字符,而 n 指的是要插入的空白字符数。
Tab(n) 用来将插入点定位在某一绝对列号上,这里,n 是列号。使用无参数的 Tab 将插入点定位在下一个打印区的起始位置。
expression 要打印的数值表达式或字符串表达式。 charpos 指定下一个字符的插入点。使用分号将插入点定位在上一个显示字符之后。用 Tab(n) 将插入点定位在某一绝对的列号上,用无参数的 Tab 将插入点定位在下一个打印区的起始处。如果省略 charpos,则在下一行打印下一个字符。
功能:将格式化显示的数据写入顺序文件中。
说明:通常用 Line Input # 或 Input 读出 Print # 在文件中写入的数据。
示例:
Open \ ' 打开输出文件。
Print #1, \ ' 将文本数据写入文件。 Print #1, ' 将空白行写入文件。 Print #1, \ ' 数据写入两个区(print zones)。 Print #1, \ ' 以空格隔开两个字符串。 Print #1, Spc(5); \ ' 在字符串之前写入五个空格。 Print #1, Tab(10); \ ' 将数据写在第十列。
' 赋值 Boolean、Date、Null 及 Error 等。 Dim MyBool, MyDate, MyNull, MyError
MyBool = False: MyDate = #2/12/1969#: MyNull = Null MyError = CVErr(32767)
' True、False、Null 及 Error 会根据系统的地区设置自动转换格式。 ' 日期将以标准的短式日期的格式显示。 Print #1, MyBool; \Print #1, MyDate; \Print #1, MyNull; \Print #1, MyError; \Close #1
以上代码写入的内容如下: This is a test
Zone 1 Zone 2 Hello World
5 leading spaces Hello
False is a Boolean value 1969-2-12 is a date Null is a null value
Error 32767 is an error value
13、Width # 语句
语法:Width #filenumber, width
width 必要。范围在 0–255 之间的数值表达式,在新的一行开始之前,指出在该行上可出现多少字符。如果 width 等于 0,则行的长度不受限制。width 的缺省值为 0。
功能:将一个输出行的宽度指定给用 Open 语句打开的文件。
示例: Dim I
Open \
Width #1, 5 ' 设置输出行宽为 5。 For I = 0 To 9 ' 循环 10 次。 Print #1, Chr(48 + I); ' 每行输出五个字符。 Next I Close #1
以上代码写入的内容如下: 01234 56789
四)处理二进制文件
打开二进制文件可以使用Open语句的Random和Binary方式打开。二进制文件读写使用Get和Put语句。
1、Put 语句
语法:Put [#]filenumber, [recnumber], varname
recnumber 可选。Variant (Long)。记录号(Random 方式的文件)或字节数(Binary 方式的文件),指明在此处开始写入。
说明:通常用 Get 将 Put 写入的文件数据读出来。
示例:
Dim num As Long, text As String num = 12345 text = \
Open \ '打开或创建一个二进制文件 Put #1, , num '写入4个字节
Put #1, , text '写入8个字节(字符串长为8) Close #1
2、Get 语句
语法:Get [#]filenumber, [recnumber], varname
recnumber 可选。Variant (Long)。记录号(Random 方式的文件)或字节数(Binary 方式的文件),以表示在此处开始读出数据。
功能:将一个已打开的磁盘文件读入一个变量之中。
说明:通常用 Put 将 Get 读出的数据写入一个文件。
示例:读取以上代码写入的内容 Dim num As Long, text As String Open \Get #1, , num
text = Space$(8) '准备8个字节的字符串 Get #1, , text '读入 Debug.Print num, text Close #1
在立即窗口可以看到如下内容: 12345 a string
3、Seek 语句
语法:Seek [#]filenumber, position
其中position 为介于 1~ 2,147,483,647(相当于 2^31 – 1)之间的数字,指出下一个读写操作将要发生的位置。
功能:在 Open 语句打开的文件中,设置下一个读/写操作的位置。
说明:可以用Seek语句指定Get语句的读取位置,但在 Get 及 Put 语句中指定的记录号将覆盖由 Seek 语句指定的文件位置。
示例:
Dim MaxSize, NextChar, MyChar
Open \
MaxSize = LOF(1) ' 取得文件的总字符数。
' 用循环读入所有记录,但是从最后的记录开始往前读。 For NextChar = MaxSize To 1 Step -1
Seek #1, NextChar ' 设置读写位置。 MyChar = Input(1, #1) ' 读入一字符。 Next NextChar Close #1
4、Seek 函数
语法:Seek(filenumber)
功能:返回一个 Long,在 Open 语句打开的文件中指定当前的读/写位置。
说明:在使用Get语句读取文件时,必须用LOF函数来判断是否到达文件末尾,而不是用EOF函数。可以使用Seek函数判断当前位置,然后与LOF的值比较。
示例:
Do While Seek(1) < LOF(1) '继续读取 ......
Loop
(五)总结
VBA语句的文件操作涵盖了文件操作的绝大部分内容,很多函数的使用也很简单,一般的文件读写也非常方便,特别是对文本文件。但对于复杂的文件读写,代码的结构和维护性都不好。因此在VB6之后,微软引入了FileSystemObject对象模型,提供了面向对象的类库,来操作驱动器、文件夹和文件。但对于二进制文件的操作,目前还只能用VBA语句。
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库VBA文件操作及目录操作(3)在线全文阅读。
相关推荐: