Вывод данных из файла последовательного доступа
Обсудим инструкции и функции вывода информации из файла последовательного доступа, а также функцию идентификации конца файла.
Input # | Считывает .данные из открытого файла последовательного доступа и присваивает их переменным. Данные, считываемые с помощью инструкции input I, обычно записываются в файл с помощью инструкции Write #. Синтаксис: Input #НомерФайла, СписокПеременных
| |
| ||
Line Input # | Считывает строку из открытого файла последовательного доступа и присваивает ее переменной типа string. Данные, считываемые с помощью инструкции Line input I, как правило, записываются в файл с помощью инструкции Print #.
Синтаксис: Line Input #НомерФайла, ИмяПеременной Синтаксис инструкции Line Input1 содержит следующие элементы:
| |
| ||
Функция Input | Возвращает значение типа string, содержащее символы из файла, открытого в режиме input или Binary. Функция input считывает данные, записываемые в файл с помощью инструкции Print # или Put.
Синтаксис: Input (Число, [#] НомерФайла) Число задает число возвращаемых символов. Если аргумент Число равен 1, то производится посимвольное считывание данных. | ||||
ФУНКЦИЯ EOF | Функция возвращает значение True при достижении конца файла.
Синтаксис: EOF (НомерФайла} При последовательном считывании информации из файла часто используется следующий цикл: Do While Not EOF(l) Loop или, для тех пользователей, кто предпочитает инструкцию While - Wend инструкции Do While - Loop, следующий эквивалентный цикл: While Not EOF (I) Wend | ||||
Приведем пример использования инструкции input # для считывания данных из файла. В этом примере предполагается, что на диске существует файл группаЭкономистов, содержащий информацию о студентах. Файл был создан при помощи инструкции write # и состоит из двух столбцов, в первом из которых указывается фамилия, а во втором — оценка студента.
Для удобства работы с информацией введен пользовательский тип Студенты. Процедура примериспользованияInput последовательно считывает фамилии и оценки из файла и выводит их в ячейки первого и второго столбца рабочего листа.
Туре Студенты
' Фамилия As String * 20
Оценка As String * 3
End Type
Sub ПримерИспользованияInput()
Dim Студент As Студенты
Open "ГруппаЭкономистов"
For Input As 12 i = 1
Do While Not EOF(2) With Студент
Input #2, .Фамилия, .Оценка
Cells(i, 1).Value = .Фамилия
Cells(i, 2).Value = .Оценка
End With
i = i + 1 Loop
Close #2
End Sub
Приведем пример использования инструкции Line input # для считывания данных из файла группаЭкономистов, имеющего ту же структуру, что и в предыдущем примере, но созданного с помощью инструкции Print #. Инструкция Line input # считывает всю строку из файла в строковую переменную. Поэтому в этом случае уже нет необходимости использовать введенный пользовательский тип, а достаточно ограничиться только обычной строковой переменной. Вся считываемая информация строка за строкой вводится в список диалогового .окна.
Private Sub UserForm_Initialize()
Dim Студент As String
Open "ГруппаЭкономистов"
For Input As #1
i = 1
With ListBoxl
.Clear Do While Not EOF(l)
Line Input 11, Студент
.Addltem Студент
i = i + 1 Loop
Close #l
End With
End Sub