logo
Лабораторная работа №13

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

Данные из файла произвольного доступа, как правило, считываются записями. Для этого используется оператор Get #, который имеет следующий синтаксис:

Get #номер_файла, [номер_записи], имя_переменной

где:

Если параметр номер_записи в функции Get не указан, считывается текущая запись, на которой позиционирован указатель.

Пусть, например, в телефонном справочнике имеется информация о фамилии, имени и номере телефон. Опишем программный код добавления записи в телефонную книгу и чтение записи (все записи будут хранится в файле с расширением .dat). Данные для записи будут считываться из текстовых полей.

Private Type abonent

Soname As String*20

Name As String*15

Tel As String*6

End Type

Dim a as abonent

Dim k As Integer

Private Sub Form_Load()

k = 1

End Sub

новая запись

Private Sub New

n=FreeFile

a.soname=Text1.Text

a.name=Text2.Text

a.tel=Text3.Text

Open «C:\справочник.dat» As #n Len=Len(a)

Put #n, k, a

k=k+1

Close #n

End Sub

чтение данных из файла и вывод их в диалоговом окне

Private Sub Reading

n=FreeFile

Open «C:\справочник.dat» As #n Len=Len(a)

Get #n, k, a

k=k+1

Close #n

MsgBox (a.soname + a.name + a.tel)

End Sub

Для позиционирования указателя можно использовать функцию Seek. Синтаксис этого оператора такой же, как для файлов последовательного доступа, но имеет другой смысл. Если для последовательных файлов позиционирование выполняется по символам, то для файлов произвольного доступа — по номеру записи: