|
下边我们继续介绍一下不同文件类型的操作:
一)读文件
1、顺序文件
顺序文件的读取有三种方式:
(1)Line Input # 语句
该语句从打开的顺序文件中读取一行数据。这里的一行指的是从当前指针位置开始到回车符或回车换行符之间的所有数据。Line Input # 语句的语法格式如下:
Line Input # 文件号,变量号
说明:“文件号”是打开文件时所用的文件号;“变量号”使用来存放读出数据的一个或多个变量,如果有多个变量,中间用空格分割开。Input# 语句为参数列表中的每一个变量读取文件的一个域,并将读出的域存入变量中。该语句只能顺序的从第一个域开始,直到读取想要的域。
请看下面代码:
Dim strLine As String
Dim VarValue as String
Open "c:\test.txt" For Input As #1
Do Until EOF(1)
Line Input #1, strLine
VarValue = VarValue + strLine
Loop
Close #1
此段代码逐行读取一个文件到一个变量字符串中。
(2)Input函数
此函数可以从顺序文件中一次读取指定长度的字符串。具体地说,就是从文件的当前位置开始,读取指定个数的字符,然后将他们返回。Input函数可以读取包括换行符,回车符,空格符等在内的各种字符。下面是它的语法格式:
变量 = Input(串长度,文件号)
例如,要从一个打开文件中读取12个字符并复制到变量file中,我们可以这样写:
file = Input(12,filenum)
如果要将整个文件复制到变量,请使用InputB函数将字节从文件复制到变量。由于InputB函数返回一个ASCII字符串,因此,必须用StrCopy函数将ASCII字符串转换为Unicode字符串。代码如下:
file = StrCopy (Input (LOF(filenanum),filenum),vbUnicode)
(3)Input # 语句
Input #语句可以从文件中同时向多个变量内读入数据,而且读入的数据可以是不同类型的。
下面使它的语法格式:
Input # 文件号,变量列表
例如,我们要在文件student.txt中写入数据,下面是代码:
Open "student.txt" For Output As #filenum
Write #filenum, "张三", "初一年级", 14
Write #filenum, "李四", "职业高中", 18
Dim name As String, nianji As String, age As Integer
Dim name1 As String, nianji1 As String, age1 As Integer
Open "student.txt" For Input As #filenum
Input #filenum, name, nianji, age
Input #filenum, name1, nianji1, age1
Close #filenum
执行结果:
name=”张三” ,nianji = “初一年级” ,age =14
name=”李四” ,nianji = “职业高中” ,age =18
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 |
|