Шаг 28 - Инструкция Input #

Читает данные из открытого последовательного файла и присваивает их переменным.

Input #номерФайла, списокПеременных

Параметры
номерФайла
Обязательный. Любой допустимый номер файла.
списокПеременных
Разделяемый запятыми список переменных, которым следует присвоить значения, считанные из файла. Нельзя использовать массивы или объектные переменные. Однако допускается использование переменных, описывающих элементы массива или определяемого пользователем типа.

Замечания
Данные, считываемые с помощью инструкции Input #, обычно записываются в файл с помощью инструкции Write #. Эта инструкция применима только к файлам, открытым в режиме Input или Binary.
После считывания стандартные строки и числовые данные присваиваются переменным без изменения. В следующей таблице показано, как обрабатываются остальные данные:

Запятая-разделитель
или пустая строка		Empty
#NULL#	Null
#TRUE# или #FALSE#		True или False
#yyyy-mm-dd hh:mm:ss#	Дата и/или время, являющиеся результатом выражения.
#ERROR кодОшибки#		кодОшибки (переменная типа Variant, помеченная как ошибка).

Прямые кавычки (" ") внутри считываемых данных игнорируются.
Элементы данных в файле должны располагаться в том же порядке, что и переменные в спискеПеременных, и иметь соответствующие переменным типы данных. Если переменная является числовой, а элемент данных нечисловым, переменной присваивается нулевое значение.
При достижении конца файла во время считывания элемента данных ввод прекращается и возникает ошибка.
Чтобы иметь возможность корректно считывать данные из файла в переменные с помощью инструкции Input #, следует всегда использовать инструкцию Write # (а не Print #) для записи данных в файлы. Использование инструкции Write # гарантирует правильность размещения разделителей между отдельными элементами данных.

Пример
В данном примере инструкция Input # используется для чтения данных из файла в две переменные. Предположим, что текстовый файл TESTFILE существует и содержит несколько строк текста, записанных с помощью инструкции Write #, т.е. каждая строка содержит заключенную в кавычки строку и отделенное от нее запятой число, например ("Привет", 234).

Dim MyString, MyNumber
Open "TESTFILE" For Input As #1		' Открывает файл для чтения.
Do While Not EOF(1)			' Цикл до конца файла.
	Input #1, MyString, MyNumber	' Читает данные в две переменные.
	Debug.Print MyString, MyNumber	' Выводит данные в окно отладки.
Loop
Close #1	' Закрывает файл.

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем.