На этом шаге мы рассмотрим пример использования файла приямого доступа.
Приведем пример работы с файлом произвольного доступа ГруппаЭкономистов, который имеет ту же структуру, что и в предыдущем примере. Файл сначала создается с помощью соответствующей процедуры, которая последовательно считывает данные из первого и второго столбца рабочего листа и затем помещает их в файл. В этой процедуре число вводимых записей фиксировано и равно 5. Процедура, читающая файл, производит обратное действие — считывает данные из файла и вводит их в ячейки третьего и четвертого столбца рабочего листа. Интересной особенностью файла произвольного доступа является то, что при работе с ним можно определить число записей не пересчитывая их. Число записей равно отношению размера файла к длине одной записи. Длина записи устанавливается при создании файла произвольного доступа и определяется типом переменной, при помощи которой файл был создан, размер открытого файла возвращается функцией LOF, а еще не открытого — функцией FileLen. В рассматриваемом случае число записей в файле равно LOF(1) / Len(Студент).
Type Студенты Фамилия As String * 20 Оценка As String * 3 End Type Private Sub CommandButton1_Click() ' Запись в файл Dim Студент As Студенты Dim i As Integer Open "ГруппаЭкономистов" For Random As #1 Len = Len(Студент) For i = 1 To 5 With Студент .Фамилия = Cells(i, 1).Value .Оценка = Cells(i, 2).Value End With Put #1, i, Студент Next i Close #1 End Sub Private Sub CommandButton2_Click() ' Чтение из файла Dim Студент As Студенты Dim i As Integer Dim n As Integer Open "ГруппаЭкономистов" For Random As #1 Len = Len(Студент) n = LOF(1) / Len(Студент) For i = 1 To n Get #1, i, Студент With Студент Cells(i, 3).Value = .Фамилия Cells(i, 4).Value = .Оценка End With Next i Close #1 End Sub
На рисунке 1 приведен внешний вид рабочего листа после чтения данных из файла.
Рис.1. Пример работы процедур
На следующем шаге мы рассмотрим наиболее часто используемые конструкции при работе с файлами.