刚学VB,也就看了几页书的水平~~ 菜……
在处理顺序文件 的时候 Input()函数~~ 把我给弄糊涂了~~ 代码编译环境VB 6.0
Dim FN,SN As Integer
Dim Allstr As String
FN = FreeFile()
Open "xx.txt" For Input As FN
SN = LOF(FN)
Allstr = Input(SN,FN) <-----问题出在这里
Close FN
问题,为什么老是提示 超出文件尾? LOF(#?)得到的不是正好够么?
而且教材上也是这么写的呀?请帮忙看看
make sure the program can find "xx.txt", you may want to try
Open App.Path & "\xx.txt" For Input As FN
估计你是读中文
SN = LOF(FN)‘以字节为单位,所以读中文时
改为SN = LOF(FN)/2就可以了。
LOF(FN)得到的是文件所占字节
而VB内部对字符串的处理用的是UniCode
所以对于中英文混合的文件会报错
最好使用二进制方式打开
用Get全部读取
再用StrConv把它转化为UniCode
Dim TempFile As Long
Dim LoadBytes() As Byte
TempFile=FreeFile
Open 文件名 For Binary As #TempFile
Redim LoadBytes(1 To Lof(TempFile)) As Byte
Get #TempFile,,LoadBytes
Close TempFile
Text1.Text=StrConv(LoadBytes,vbUniCode)