На этом шаге мы примеры использования конструкций, приведенных на предыдущем шаге.
Приведем пример использования инструкции Input # для считывания данных из файла. В этом примере предполагается, что на диске существует файл ГруппаЭкономистов, содержащий информацию о студентах. Файл был создан при помощи инструкции Write # и состоит из двух столбцов, в первом из которых указывается фамилия, а во втором — оценка студента. Для удобства работы с информацией введен пользовательский тип Студенты. Процедура ПримерИспользованияInput последовательно считывает фамилии и оценки из файла и выводит их в ячейки первого и второго столбца рабочего листа.
Тyре Студенты Фамилия As String * 20 Оценка As String * 3 End Type Sub ПримерИспользованияInput() Dim Студент As Студенты Open "ГруппаЭкономистов" For Input As #2 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
Результат работы процедуры изображен на рисунке 1.
Рис.1. Результат работы процедуры
Приведем пример использования инструкции Line Input # для считывания данных из файла ГруппаЭкономистов, имеющего ту же структуру, что и в предыдущем примере, но созданного с помощью инструкции Print #. Инструкция Line Input # считывает всю строку из файла в строковую переменную. Поэтому в этом случае уже нет необходимости использовать введенный пользовательский тип, а достаточно ограничиться только обычной строковой переменной. Вся считываемая информация строка за строкой вводится в список диалогового окна.
Private Sub UserForm_Initialize() Dim Студент As String Open "ГруппаЭкономистов" For Input As #1 i = 1 With ListBox1 .Clear Do While Not EOF(1) Line Input #1, Студент .AddItem Студент i = i + 1 Loop Close #1 End With End Sub
Результат работы процедуры изображен на рисунке 2.
Рис.2. Результат работы процедуры
Замечание. Не забудьте разместить файл ГруппаЭкономистов в папке, установленной в MSExcel по умолчанию (как правило, это папка Мои документы), или пропишите полный путь перед именем файла!
На следующем шаге мы рассмотрим работу с файлом произвольного доступа.