Самоучитель 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



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