logo
Конспект лекций по КИТ

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

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

Input #

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

Синтаксис:

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

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

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

Line Input #

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

Синтаксис:

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

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

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

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

String

функция EOF

Функция возвращает значение True при достижении кон­ца файла.

Синтаксис:

EOF(НомерФайла)

При последовательном считывании информации из файла часто используется следующий цикл:

Do While Not EOF(l) Loop

или, для тех пользователей, кто предпочитает инструкцию

While - Wend инструкции Do While - Loop, следующий

эквивалентный цикл:

While Not EOF(l) Wend

Функция

Input

Возвращает значение типа String, содержащее символы из файла, открытого в режиме Input или Binary. Функция Input считывает данные, записываемые в файл с помо­щью инструкции Print # или Put.

Синтаксис:

Input(Число, [#]НомерФайла)

  • Число задает число возвращаемых символов. Если аргу­мент число равен 1, то производится посимвольное считывание данных.

Приведем пример использования инструкции Input # для считывания дан­ных из файла. В этом примере предполагается, что на диске существует файл ГруппаЭкономистов, содержащий информацию о студентах. Файл был создан при помощи инструкции Write # и состоит из двух столбцов, в пер­вом из которых указывается фамилия, а во втором — оценка студента. Для удобства работы с информацией введен пользовательский тип Студенты. Процедура ПримерИспользованияInput последовательно считывает фамилии и оценки из файла и выводит их в ячейки первого и второго столбца рабо­чего листа.

Type Студенты

Фамилия 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

Приведем пример использования инструкции 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(1)

Line Input #1, Студент

.Addltem Студент

i = i + 1

Loop

Close #1

End With End Sub