Шаг 158.
VBA в MSExcel.
Работа с файлами. Работа с файлом произвольного доступа (окончание)

    На этом шаге мы рассмотрим пример использования файла приямого доступа.

    Приведем пример работы с файлом произвольного доступа ГруппаЭкономистов, который имеет ту же структуру, что и в предыдущем примере. Файл сначала создается с помощью соответствующей процедуры, которая последовательно считывает данные из первого и второго столбца рабочего листа и затем помещает их в файл. В этой процедуре число вводимых записей фиксировано и равно 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. Пример работы процедур

    На следующем шаге мы рассмотрим наиболее часто используемые конструкции при работе с файлами.




Предыдущий шаг Содержание Следующий шаг