【发布时间】:2013-09-03 13:59:12
【问题描述】:
我正在尝试在 excel 中读取大 (>15MB) 文件中的前几个字符。现在,我使用的是典型的:
Set MyObject = New Scripting.FileSystemObject
Set mySource = MyObject.GetFolder(mySourcePath)
For Each myFile In mySource.Files
With New Scripting.FileSystemObject
With .OpenTextFile(myFile, ForReading)
test_str = .ReadLine
'Do things
End With
End With
Next
问题在于大文件,我(相信)您将整个内容加载到内存中只是为了读取前几个字符。有没有办法只提取前 6 个字符?
【问题讨论】:
-
不,它不会加载整个内容。我刚刚
ReadLined 观看了一部高清电影,而 Excel 内存消耗/IO 计数非常低。 -
为什么你认为它正在将整个文件加载到内存中?
-
我的问题是它会很快循环遍历较小的文件,它会卡在较大的文件上(或者随着时间的推移,也许)。但是现在知道这一点,也许这不是问题。我也在使用: "If Right(myFile.Name, 3) = "txt" Then" 在我的目录搜索中,以确保我正在处理我需要的文件(而不是图片)。这些文件位于网络上。如果我在 excel 关闭之前终止它,我会收到错误消息:“对象 'IFile' 的方法 'Name' 失败”我会进行更多调查并报告...