错误:输入文件的结尾?

时间:2014-12-06 12:44:36

标签: vbscript

我正在研究VB Script,我正在尝试读取txt文件并在数组中将其疼痛。 我检查行数并将该变量用于For循环。

我收到错误输入文件结尾。 我不知道如何解决这个问题。

期待您的帮助。

谢谢!

Dim num As Integer
'Skip lines one by one
Do While objTextFile.AtEndOfStream <> True
    objTextFile.SkipLine ' or strTemp = txsInput.ReadLine
Loop

num = objTextFile.Line - 1


Dim para()
ReDim para(num)


For i = 1 To num

    para(i) = objTextFile.ReadLine

Next

2 个答案:

答案 0 :(得分:2)

有两个原因(如果你修复了第一个,第二个进入intp):

  • 您已经将文件读到最后。您需要重置或重新打开它。
  • 无论您找到多少行,您总是阅读125行。

您可以一次性读取这些行并将它们放入数组中:

Dim para()
Dim num As Integer = 0
Do While Not objTextFile.AtEndOfStream
  ReDim Preserve para(num)
  para(num) = txsInput.ReadLine
  num = num + 1
Loop

注意:数组是基于零的,上面的代码将第一行放在索引0处。如果从索引1开始放置数据(如在原始代码中),则不使用第一个项目,并且必须在使用数组时继续跳过第一项。

编辑:

我发现您在代码中将125更改为num,这将解决第二个问题。

答案 1 :(得分:0)

我使用了以下样式代码,对于小文件来说速度很快:

Const ForReading = 1

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile(strList, ForReading)

strText = objTextFile.ReadAll
objTextFile.Close

arrList = Split(strText, vbCrLf)