Шаг 156.
VBA в MSExcel. Работа с файлами. Вывод данных из файла последовательного доступа (окончание)

    На этом шаге мы примеры использования конструкций, приведенных на предыдущем шаге.

    Приведем пример использования инструкции 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 по умолчанию (как правило, это папка Мои документы), или пропишите полный путь перед именем файла!


    На следующем шаге мы рассмотрим работу с файлом произвольного доступа.




Предыдущий шаг Содержание Следующий шаг