我正在使用这样的脚本来遍历文本文件中的一些数据:
Do Until objFile.AtEndOfStream
'Check if it is not a blank line; otherwise skip it
If Len(Trim(objFile.ReadLine)) > 0 Then
'Some code
end if
Loop
我每次都打印出这些值,它一直到文件末尾(我可以看到它打印了每个值),但是当它到达末尾时,它总是出错。我使用on error resume next
并打印出来Err.Number
,我得到错误号 9,即Subscript out of range
.
我正在循环的文件的问题是最后一行是空白的。我知道这一点,因为我打开了文件,删除了最后的空白行,然后运行代码,它工作正常。这是一个自动化过程(文件自动发送到 FTP,并且该过程每天都由自动化任务运行)所以我不能每天手动删除最后一行。我把它包括在内是If Len(Trim(objFile.ReadLine)) > 0 Then
为了考虑到这个空白行,它在有数据的行上工作得很好,但它仍然在文件末尾抛出一个错误。
当循环到达空行时,我可以结束循环,但我想在其中保留一个条件,以防由于某种原因在代码中间出现空行。我认为确定它是否真的是文件的最后一行然后结束循环会更清晰。
有任何想法吗?谢谢你的帮助!