我刚刚编写了这个函数来从一个以换行符分隔的文本文件中读取一系列电子邮件地址。 确实有用,但这不是我的问题。
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
读这篇文章,我希望如此:
我无法弄清楚while循环如何进入文本文件中的下一行。
答案 0 :(得分:2)
您从调用Open
的点开始持有该文件的句柄(#1),直至您拨打Close
。在幕后(在O / S级别),句柄保留当前文件位置作为文件描述符的一部分。
答案 1 :(得分:2)
您的第3步应该是:
3.
从文件中读取下一行到TempArr(i + 1)
所以你不再读第一行,line input
语句读取行,并将文件位置放在下一行。
答案 2 :(得分:1)
我相信魔法正在Line Input #1, TempArr(i+1)
发生。它从文件句柄#1读取到TempArr(i+1)
。当它到达文件末尾时,EOF(1)
将评估为true并终止while
循环。系统如何知道下一行是哪一行?这是通过Line Input
为您处理的。
答案 3 :(得分:0)
线路输入功能正在改变当前线路。相当俗气的东西。