3、二进制文件
读写二进制文件的方法和读写随机文件的方法基本相同,下面是相关的语句格式及其说明:
格式: Get [#]fileNumber ,[Pos], Var
功能: 用二进制方式,从文件的中指定的位置开始读取,所给变量长度的数据
说明:
(1)FileNumber是以二进制方式打开的文件号.
(2)Pos用来指定读写操作发生时的字节位置,若省略,则使用当前文件指针位置.
(3)Var是用来存放读出的数据的变量.该语句会自动根据var变量包含的字节长度读取适当的文件,如果Var是一个可变长度的字符串变量,则传送的字节数等于Var中目前的字节数.对于文件长度的判断我们可以使用Lof()函数,Eof()函数检查文件的结尾位置.
下面的代码复制studert.txt文件到student1.txt文件中
| Dim ar As String * 1, i As Integer Open "c:\student.txt" For Binary As #1 Open "c:\student2.txt" For Binary As #2 For i = 1 To LOF(1) Get #1, , ar Put #2, , ar Next i Close #1, #2 |
二)写文件
1、 顺序文件
写顺序文件我们可以用Write # 和Print #语句向一个已经打开的文件中写入数据.
下面是他们的格式和说明:
Print # 的语法格式:
Print # 文件号,变量列表
例如,将文本框中的文本写到文件中,代码如下:
|
Open "file.txt" For Output As #filenum Input #filenum, text1.text Write # 语句的语法格式: Write # 文件号,变量列表 |
说明:用Write # 语句写入的信息便于以后用Input #语句来读取数据,因为Write #语句自动将写入到文件中的信息用逗号分开,并为字符串数据加上双引号.例如:
|
Open "student.txt" For Output As #filenum Write #filenum, "张三", "初一年级", 14 Write #filenum, "李四", "职业高中", 18 |
2、 随机文件
向随机文件中写入数据,使用Put #语句.语法格式如下:
Put [#] FileNum ,[RecNum],UserType
说明:
(1) FileNum 是要打开的文件号;RecNum是要写入的记录号,若省略,则再上一次用Get 和Put语句所读写过的记录的后一条记录中写入,如果没有执行过Get 和Put语句,就从第一条记录开始
(2)UserType 是包含要写入数据的用户自定义的数据类型变量.例如:我们向前面的student.txt文件中的第5个记录写入数据,可用这些语句:
| stud.No = 0301 stud.Name = “王武” stud.Age =20 Put #1 ,5,stud |
如果要插入的数据不只一两条的话,首先要确定文件和每条记录的长度,这样就可以计算出文件中究竟有多少条记录.我们可以用Lof()函数返回文件的长度,Len()函数返回每个记录的长度,计算文件中的记录个数可以用文件的长度除以给个记录的长度.示例如下:
|
Nextrec= (Lof(1)\Len(UserType))+1 Put #1,Nextrec,UserType |
3、二进制文件
下面是以二进制方式写入文件的语句格式及其说明:
格式:
Put [#]fileNumber ,[Pos], Var
功能: 用二进制方式,从文件的中指定的位置开始写入,所给变量长度的数据
说明:
(1)FileNumber是以二进制方式打开的文件号.
(2)Pos用来指定写操作发生时的字节位置,若省略,则使用当前文件指针位置.
(3)Var是用来存放写入的数据的变量.该语句会自动根据var变量包含的字节长度写入文件,如果Var是一个可变长度的字符串变量,则传送的字节数等于Var中目前的字节数.
使用方法可参考二进制文件的读操作.
我们在进行系统自动化功能测试的时候,需要Robot从外部文本文件中读入到变量中,类似于实现数据池(datapool)的功能,这时可以通过对文件操作的几个语句来实现,其中 Open 语句能够对文件输入/输出,LOF函数返回一个 Long型值,表示用 Open 语句打开的文件的大小,该大小以字节为单位。Input函数从文件中读入数据,而Print函数则把数据写到文件中。下边是个代码例子
| Sub Main Dim Result as Integer Dim filename as String Dim VarValue as Strng filename="c:\myext.txt" Open filename For Input As #1 VarValue = Input$(Lof(1),#1) Close #1 End Sub |
|
Sub Main |

