что является аргументом функции EOF () - PullRequest
2 голосов
/ 02 ноября 2011
Set File_Object = CreateObject("Scripting.FileSystemObject")
Set File_Xml = File_Object.OpenTextFile(Str_Xml_File)
a = File_Xml.readline

Я хотел прочитать каждую строку до конца файла. Я пробовал вот так

while EOF() 'says argument not optional 
while EOF(File_Xml) ' says that Type mismatch it must be an integer

каков аргумент EOF? Подскажите пожалуйста, как прочитать содержимое файла, используя условие EOF в Vba. Спасибо

1 Ответ

3 голосов
/ 02 ноября 2011

File_Xml является TextStream объектом. Вы можете использовать свойство AtEndOfStream для проверки того, что вы встретили конец файла, например, File_Xml.AtEndOfStream.

* * * * * * * * * * * * * * * EOF происходит со времен, когда вы имели дело только с «настоящими» файлами, и у вас было ограниченное количество файловых дескрипторов на процесс. В качестве аргумента принимает идентификатор дескриптора файла. Это все еще верно сегодня, но у нас также есть потоки для работы.

TextStream - это поток, который является более высокой абстракцией, чем «файл». Поток может быть файлом, или сетевым соединением, или чем-то, что соответствует интерфейсу. Поэтому я не верю, что он получает настоящий идентификатор дескриптора файла, и, следовательно, функция EOF не имеет значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...