2、随机文件
读取随机文件是可以使用Get # 语句,数据从文件的一个指定记录中读出后,存入一个用户自定义的变量中。
语法格式: Get # FileNum ,[RecNum],UserType
说明:
(1)FileNum是要打开的文件号;RecNum是要读取的记录号,若省略,则读取下一个记录。
(2)UserType是一个用来存放读出数据的用户自定义的数据类型变量。
下面是一个例子:
Get # 1,5,Student
该语句读取文件号为1的文件中的第5条记录。
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中目前的字节数。
使用方法可参考二进制文件的读操作。 |