用下面的程序读一个文本文件,如果结尾有一行空行,就是指最后一行之后还有回
车一下,光标移到下一行开头,实际上这行什么也没有,读的时候就出错:
实时错误'62':
输入超出文件尾怎么办?不能手工把每个文件检查一遍有没有这一行吧
我把这行去掉,很正常,咋办?
代码如下:
Dim MyData() As Byte
Open "e:\cq1.nc1" For Binary As #1   ' 打开文件
Input #1, MyData
Do While Not EOF(1)
     Line Input #1, x   '如果读到那一最后空行,出错
     ....   '处理每一行数据
Loop最好不要改动我现有的代码,怎么在这些代码基础上改最好用下面这种open 的方式就没问题
Open "e:\cq1.nc1" For Input As #1
但我是要用上面那种方式这两种打开的方式不同的是,如果文件的前面有一些乱字符,前
一种方式会跳过不读,至今我也不懂为什么会这样,但是这很有用
后一种就一行一行老实读,但我还要去处理那些乱字符

解决方案 »

  1.   

    因为你要读的本身是文件文件,用binary打开最后的文件结束符被读出,出错。可以这样改:Dim MyData() As Byte
    Open "e:\cq1.nc1" For Binary As #1   ' 打开文件
    Input #1, MyData
    on error goto exitdo
    Do While Not EOF(1)
         Line Input #1, x   '如果读到那一最后空行,出错
         ....   '处理每一行数据
    Loop...........exit subexitdo:if err.Number = XXXX   '此处为你之前运行错误出现的错误编号   exit doend if