如何重新启动文件输入循环

时间:2011-02-11 20:26:57

标签: excel-vba do-while file-io vba excel

我在VBA中有这个示例代码:

   iFileNum = FreeFile()
   Open fileLocation For Input As #1
   Do While Not EOF(iFileNum)
     Line Input #iFileNum, sText

   Loop

如何重新启动iFileNum以返回文件的开头?

3 个答案:

答案 0 :(得分:3)

我相信你可以使用它:

    If EOF(fileNum) Then
        Seek fileNum, 1
    End If

Seek命令将指针移动到文件中的任何位置..所以1将指针移动到文件的开头。

仍然需要考虑上面的Ho1答案。

答案 1 :(得分:3)

FileSystemObject Object可能会给你更多控制权:

''Library: Windows Script Host Object Model
Dim fso, ts
Const ForReading = 1

Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.OpenTextFile("c:\docs\test.txt", ForReading, True)
a = ts.Readall

Debug.Print a
aa = Split(a, vbCrLf)
Debug.Print aa(0)

答案 2 :(得分:2)

如果您想要读取另一个文件,则必须关闭此文件并打开另一个文件。否则,如果您想要再次阅读同一个文件,则必须将其关闭并重新打开。
但是,我建议在这种情况下你只是将文件的内容缓存在内存中而不是多次读取它(除非它的内容已经改变了)。