代码之家  ›  专栏  ›  技术社区  ›  PowerUser

这个代码是有效的,但是如何工作呢?

vba
  •  0
  • PowerUser  · 技术社区  · 14 年前

    我刚刚编写了这个函数来从一个换行符分隔的文本文件中读取一系列电子邮件地址。以及 它确实有用 ,但这不是我的问题。

    Function GetEmailArray(FileName As String) As String()
        Dim TempArr() As String
        Dim i As Integer
    
        Open FileName For Input Access Read As #1
        Do While Not (EOF(1))
            i = i + 1
            ReDim Preserve TempArr(i + 1)
            Line Input #1, TempArr(i + 1)
            Debug.Print TempArr(i + 1)
        Loop
        Close #1
        GetEmailArray = TempArr
    End Function
    

    读到这里,我希望:

    1. 读第一行,存储在TempArr(1)中
    2. 回路
    3. 再读一遍第一行,将其存储在TempArr(2)中

    我就是搞不懂while循环是怎么转到文本文件的下一行的。

    4 回复  |  直到 14 年前
        1
  •  2
  •   Pontus Gagge    14 年前

    从你调用的点开始,你拿着文件的句柄(#1) Open ,直到你打电话 Close

        2
  •  2
  •   GvS    14 年前

    你的第三步应该是:

    3. 将文件中的下一行读入TempArr(i+1)

    所以你不要再读第一行了 line input

        3
  •  1
  •   FrustratedWithFormsDesigner    14 年前

    我相信奇迹正在发生 Line Input #1, TempArr(i+1) . 它从文件句柄#1读取到 TempArr(i+1) . 当它到达文件的结尾时, EOF(1) 将计算为true并终止 while 循环。系统如何知道下一行是哪一行?那是在引擎盖下为你处理的 Line Input .

        4
  •  0
  •   Rushyo    14 年前