VB可用Open 语句操作或建立文件。
Open 语句,能够对文件输入/输出 (I/O)。
说明
对文件做任何 I/O 操作之前都必须先打开文件。Open 语句分配一个缓冲区供文件进行 I/O 之用,并决定缓冲区所使用的访问方式。
如果 pathname 指定的文件不存在,那么,在用
Append、Binary、Output、或 Random
方式打开文件时,可以建立这一文件。
如果文件已由其它进程打开,而且不允许指定的访问类型,则 Open 操作失败,而且会有错误发生。
如果 mode 是 Binary 方式,则
Len 子句会被忽略掉。
重要 在 Binary、Input 和 Random 方式下可以用不同的文件号打开同一文件,而不必先将该文件关闭。在 Append 和
Output 方式下,如果要用不同的文件号打开同一文件,则必须在打开文件之前先关闭该文件。
Open 语句示例,本示例示范 Open 语句的不同用法来做到文件的输出与输入。
下列代码以顺序输入模式打开 TESTFILE 文件。
Open "TESTFILE" For Input As #1
' 若要以其他方式打开文件,必需先关闭此文件。
Close #1
下列代码以只允许写操作的二进制方式打开文件。
Open "TESTFILE" For Binary Access Write As #1
' 若要以其他方式打开文件,必需先关闭此文件。
Close #1
下列代码以随机方式打开文件,文件中含有用户自定义数据类型 Record 的记录。
Type Record ' 定义用户自定义数据类型。
ID As Integer
Name As String * 20
End Type
Dim MyRecord As Record ' 声明变量。
Open "TESTFILE" For Random As #1 Len = Len(MyRecord)
' 若要以其他方式打开文件,必需先关闭此文件。
Close #1
打开文件
(1)以写入方式打开(可以创建文件)
Private Sub Command1_Click()
Open "F:\ VB.ZG1" For Output As #1
Print #1, Text1; vbCr; Text2’写入TEXT1,下一行写入TEXT2
Close #1
End Sub
(2)以读取方式打开
Private Sub Command2_Click()
Dim s As String
Dim d As String
Open "F:\ VB.ZG1" For Input As #1
Line Input #1, s’让s=文件和第一行
Line Input #1, d’让d=文件和第二行
Close #1
End Sub
(3)以在文件末尾追加数据方式打开
Private Sub Command3_Click()
Open "F:\ VB.ZG1" For append As #1
Print #1, Text1; vbCr; Text2’在文件末尾写入TEXT1,下一行写入TEXT2
Close #1
End Sub
用StrConv函数可以将文件的控制字符串数据和Unicode码之间进行转换,从而达到打开文件的目的。可打开任意大小文件。此法笔者曾有一篇文章谈及,这里再给一个简单例子
Private Sub Command1_Click()
Open fd.txt For Input As #1
Text1= StrConv(InputB$(LOF(1), 1), vbUnicode)
Close #1
End Sub
EOF函数
返回一个Integer,它包含Boolean值True,表明已经到达为Random或顺序Input打开的文件的结尾。
语法
EOF(filenumber)
必要的filenumber参数是一个Integer,包含任何有效的文件号。
说明
使用EOF是为了避免因试图在文件结尾处进行输入而产生的错误。
直到到达文件的结尾,EOF 函数都返回 False。对于为访问Random或Binary而打开的文件,直到最后一次执行的Get语句无法读出完整的记录时,EOF都返回False。
对于为访问 Binary 而打开的文件,在EOF函数返回True 之前,试图使用Input函数读出整个文件的任何尝试都会导致错误发生。在用Input函数读出二进制文件时,要用LOF和Loc函数来替换EOF函数,或者将Get函数与EO函数配合使用。对于为Output打开的文件EOF总是返回True。
用open语句,一个例子:
dim fn as integer
fn=freefile '获取一个可用的文件号
open "f:\123.txt" for output as fn '为输出创建或打开"f:\123.txt"
'此处可加输出的代码,如
print #fn,"测试"
write #fn, 5
close fn '关闭文件
更正过来了fn前应加"#"