我在 VBA 中有这个示例代码:
iFileNum = FreeFile()
Open fileLocation For Input As #1
Do While Not EOF(iFileNum)
Line Input #iFileNum, sText
Loop
如何重新启动iFileNum
以回到文件的开头?
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)
我相信你可以使用它:
If EOF(fileNum) Then
Seek fileNum, 1
End If
Seek 命令将指针移动到文件中的任何位置。所以 1 将指针移动到文件的开头。
尽管如此,还是需要考虑上面的 Ho1 答案。
如果您的意思是要读取另一个文件,那么您必须关闭该文件并打开另一个文件。否则,如果您的意思是要再次读取同一个文件,那么您将不得不关闭它并重新打开它。
但是,我建议在这种情况下,您只需将文件的内容缓存在内存中,而不是多次读取它(当然,除非它的内容发生了变化)。