Самоучитель VBA

Вывод данных из файла последовательного доступа



Обсудим инструкции и функции вывода информации из файла последовательного доступа, а также функцию идентификации конца файла.

Input #

Считывает .данные из открытого файла последовательного доступа и присваивает их переменным. Данные, считываемые с помощью инструкции input I, обычно записываются в файл с помощью инструкции Write #.



Синтаксис:

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

  • номерФайла — номер файла

  • СписокПеременных — список переменных, которым следует присвоить значения, считанные из файла. Переменные в списке разделяются запятыми

  • Line Input #

    Считывает строку из открытого файла последовательного доступа и присваивает ее переменной типа string. Данные, считываемые с помощью инструкции Line input I, как правило, записываются в файл с помощью инструкции Print #.

    Синтаксис:

    Line Input #НомерФайла, ИмяПеременной

    Синтаксис инструкции Line Input1 содержит следующие элементы:

  • НомерФайла — номер файла

  • ИмяПеременной — имя переменной типа Variant или String

  • Функция

    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



    Содержание раздела