-1

该代码应该从上到下读取文件,但有时它是从下到上读取文件。

我希望它从上到下阅读,有没有办法告诉它只是从上阅读?

这是我的代码片段:

'Read lines
Do Until objFile.AtEndOfStream
Lineg = objFile.ReadLine
Lineh = objFile.ReadLine
Linei = objFile.ReadLine
Linea = objFile.ReadLine
Lineb = objFile.ReadLine
Linec = objFile.ReadLine
Lined = objFile.ReadLine
Linee = objFile.ReadLine
Linef = objFile.ReadLine

这是在打开文件和顶部所需的所有内容之后。并且Do Until在此之后关闭。

4

2 回答 2

1

TextStream 顺序读取文件;每个 .ReadLine 都会从文件中从上到下获取下一行。所以“有时它从下往上读取,有时它从上往下读取”是不可能的。

更新 wrt 评论:

  1. 这是不可能的,一个 .ReadLine 从文件中获取第 i 行,而下一个 .ReadLine 得到第 j 行,其中 j <= i; 如果是下一行,它将是 j = (i+1) (当然你可以使用容易误解阅读顺序的变量名)
  2. 如果 .ReadLine 获得最后一行,则之前执行的 .ReadLines(或 .SkipLines)足够到达该行
于 2013-08-15T14:35:36.347 回答
1

这是一种适用于 vbscript 和 Excel VBA 的方法:

Sub tgr()

    Dim oFSO
    Dim arrLines
    Dim i

    Set oFSO = CreateObject("Scripting.FileSystemObject")
    arrLines = Split(oFSO.OpenTextFile("C:\Test\test.txt").ReadAll, vbCrLf)

    For i = LBound(arrLines) To UBound(arrLines)
        MsgBox arrLines(i)
    Next

    Set oFSO = Nothing
    Erase arrLines

End Sub
于 2013-08-15T14:49:04.083 回答