打开txt未完成就提示到文件末尾了,不能读完整个内容错误求教

2017-05-06 12:27
用Line Input #1, temp一个txt数据文本内容,只要读完“63 01 00 03 61 00 00 00 00 37                    c...a....7dè?.”后就算读到了文件末尾,实际上后根本就没有到文件尾,使用网上的例子用GetTXT = StrConv(InputB(LOF(1), 1), vbUnicode)又能将全部内容读完,请问我如何才能将数据一行一行地读出来而不是在半路上就出现说到了文件末尾这样的问题?谢谢。

回复讨论(解决方案)

Binary
1. VB中的“Line Input”是用于处理“文本文件”的。
  如果你的文件内容不是纯文本的,就最好不要随意的用“字符串”方式进行读写。

2. VB中,对“文本文件的一行文本”,它是只认“回车符+换行符”作为结束标志的。
  如果你的文本文件不是以“回车+换行”(即:DOS格式)作为行的分界符,那么就不能用Line Input来“按行读”。
  有一些文本文件的行分界符,只是“换行符”,也有只是用“回车符”分界的(但这种格式很少见),
    那么在VB中,它就会认为“这个文件只有1行文本”,也就是1句 Line Input就把整个文件读完了。

  要“识别”文本文件是否以“回车+换行”分界,也很简单:
  用Windows系统自带的“记事本”打开文件,如果看到内容是“正常分行”的,那么这个文件就是“回车+换行”分界;
  否则,很可能只是用“换行符”分界。
  比如下面图中这个C代码文件crypt.c,就是一个“换行符分界”的文本文件例子(这套源码全是只用“换行”分界的),
  用Windows的记事本打开时,就没有正常分行(显示成“多行”是因为“太长”而分的行),但另一个文本编辑器显示正常。
  这个文件如果在VB中用Line Input来读,就会是“1句读完文件”的情况(这个文件约13KB)。
打开txt未完成就提示到文件末尾了,不能读完整个内容错误求教0
应该是文本的问题。

GetTXT = StrConv(InputB(LOF(1), 1), vbUnicode) 进行了文本的字符集转换。

要么先期进行文本的处理,要么换其他方式读取。
非常感谢上面的各位大师,学到了很多,分少无法全部都分到了,部好意思了。