2

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

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

   Loop

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

4

3 回答 3

3

FileSystemObject 对象可能会给您更多控制权:

''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)
于 2011-02-11T23:13:10.200 回答
3

我相信你可以使用它:

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

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

尽管如此,还是需要考虑上面的 Ho1 答案。

于 2011-02-11T22:32:12.247 回答
2

如果您的意思是要读取另一个文件,那么您必须关闭该文件并打开另一个文件。否则,如果您的意思是要再次读取同一个文件,那么您将不得不关闭它并重新打开它。
但是,我建议在这种情况下,您只需将文件的内容缓存在内存中,而不是多次读取它(当然,除非它的内容发生了变化)。

于 2011-02-11T20:34:52.583 回答