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

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

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, Студент

.AddItem Студент

i = i + 1

Loop

Close #1

End With

End Sub


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: