在VBscript中,一个函数应该读取一个文件,但它有时会在结尾处开始,有时会在顶部开始?

时间:2013-08-15 13:31:43

标签: vbscript

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

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

以下是我的代码片段:

'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将被关闭。

2 个答案:

答案 0 :(得分:1)

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

更新评论:

  1. 不可能,.ReadLine从文件中获取第i行 下一个.ReadLine获得一行j< = i;如果是下一行,它将是j =(i + 1)(当然你可以使用变量名来容易误解阅读顺序)
  2. 如果.ReadLine获取最后一行,那么在到达该行之前执行的.ReadLines(或.SkipLines)就足够了

答案 1 :(得分: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