Я использую сценарий, как это цикл по некоторым данным в текстовом файле:VBScript Ошибка 9 в AtEndOfStream Loop
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
, чтобы взять эту пустую строку во внимание, и она отлично работает на линиях с данными, но по-прежнему вызывает ошибку в конце файла.
Я мог бы концы цикла, когда он достигает пустой строки, но я хотел бы сохранить условие там, в том случае, когда пустая строка появляется по середине кода по какой-то причине по линии. Я полагаю, что будет чище выяснять, действительно ли это последняя строка файла, а затем закончить цикл.
Любые идеи? Спасибо за вашу помощь!
Просьба показать остальную часть вашего кода, а также полное, неизмененное сообщение об ошибке. Не исключено, что код, который вы отправили, приведет к ошибке 'subscript out of range'. –