文件的“打开”功能如何在VB中实现

来源:百度知道 编辑:UC知道 时间:2024/06/07 12:46:10
首先……有一种叫做“TST”的文件格式……(其实就是TXT改了后缀)
代码如下:
cd.FileName = ""
cd.Filter = "TST格式(*.TST)|*.tst|全部文件 (*.*)|*.*"
cd.ShowOpen
If cd.FileName <> "" Then
Dim nFile As Integer
nFile = FreeFile
Open cd.FileName For Input As nFile
txtScript.Text = Input(LOF(nFile), nFile)
Close nFile
End If

运行时候有62号错误,怎么解决……

62号错误的意思是:输入超出文件尾(错误 62)

产生的原因是:Input(LOF(nFile), nFile)语句只能打开32K以内的文本文件,而你试图打开超过32K的文本文件,所以会出现上述错误。

解决的办法是:改进文件读取办法,修改如下:
cd.FileName = ""
cd.Filter = "TST格式(*.TST)|*.tst|全部文件 (*.*)|*.*"
cd.ShowOpen
If cd.FileName <> "" Then
Dim nFile As Integer, BB() As Byte
nFile = FreeFile
ReDim BB(FileLen(cd.FileName) - 1)
Open cd.FileName For Binary As #nFile
Get #nFile, , BB
Close #nFile
txtScript.Text = StrConv(BB, vbUnicode)
End If

cd.FileName = ""
cd.Filter = "TST格式(*.TST)|*.tst|全部文件 (*.*)|*.*"
cd.ShowOpen
If cd.FileName <> "" Then
Dim nFile As Integer
nFile = FreeFile
Open cd.FileName For Binary As nFile
txtScript.Text=StrConv(InputB$(LOF(nFile),nFile),vbUnicode)
Close nFile
End If

LOF 函数返回一个 Long,表示用 Open 语句打开的文件的大小,该大小以字节为单位。

在VB中,一般一个中文字算一个字,但有两个字节,所以如果文件