Вы используете метод ReadAll
и затем пытаетесь перебирать возвращаемый результат построчно.Это не работает, потому что ReadAll
возвращает все содержимое файла в виде одной строки (не строковый массив, как вы могли бы ожидать) .
Для того, чтобы перебрать строкистроки, сначала нужно разделить ее:
Dim lines, line
lines = Split(filegroup, vbNewLine)
For Each line In lines
' ...
Next
Это сработает.Однако это не лучший способ перебирать строки текстового файла (особенно для больших файлов), не говоря уже о том, чтобы беспокоиться о том, какой символ EOL
используется.
К счастью, есть еще один метод под названием ReadLine
, который вы можете использовать для чтения по одной строке за раз непосредственно из текстового файла.В этом случае вам нужно будет использовать цикл Do
вместо цикла For
:
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.openTextFile("The\path\to\your\file.txt")
Dim currentLine
Do Until objFile.AtEndOfStream
currentLine = objFile.ReadLine
If objFSO.FileExists(currentLine) Then
' ...
Else
' ...
End If
Loop