назад | содержание | вперед
Запись в файл произвольного доступа
Для записи данных в файл произвольного доступа используется оператор Put #, имеющий следующий синтаксис:
Put #fileNumber, [recNumber], varName
где:
Этот оператор используется только для файлов произвольного доступа и бинарных. Если номер записи не указан, то по умолчанию принимается текущая позиция указателя записи.
Замечание
При использовании оператора Put необходимо иметь в виду, что данные в записи с указанным в операторе номером будут заменены на те, которые мы записываем в файл. Добавление записей выполняется при помощи этого же оператора, но с некоторыми особенностями. Об этом речь пойдет в следующем разделе.
Рассмотрим небольшой пример. Воспользуемся приложением MyFileApp, изменив его следующим образом:
1. Измените наименование кнопки Выполнить на Запись.
2. Добавьте в форму еще одну кнопку управления.
3. Присвойте созданной кнопке наименование cbRead, используя свойство Name.
4. В свойство Caption введите значение Чтение.
5. Добавьте в приложение программный модуль, воспользовавшись командой Add Module (Добавить модуль) из меню Project (Проект).
6. В код модуля введите текст описания пользовательского типа данных:
Type Phis Face
PhisFaseID As Integer
FIO As String * 50
End Type
7. Откройте окно редактора кода и замените находящийся там код на следующий:
Dim ForFileRecords As PhisFace
Dim nRecNo As Integer
Private Sub SaveRecord ()
Open "C:\FilePF.dat" For Random As #1 Len = Len(ForFileRecords)
ForFileRecords.PhisFaseID = txtNumber.Text
ForFileRecords.FIO = txtFile.Text
Put #1, nRecNo, ForFileRecords
nRecNo = nRecNo + 1
Close #1
End Sub
Private Sub ReadRecord ()
Open "C:\FilePF.dat" For Random As #1 Len = Len(ForFileRecords)
Get #1, nRecNo, ForFileRecords
txtNumber.Text = ForFileRecords.PhisFaseID
txtFile.Text = ForFileRecords.FIO
nRecNo = nRecNo + 1
Close #1
End Sub
Private Sub Form Load()
nRecNo = 1
End Sub
Private Sub cbStart_Click()
Call SaveRecord
End Sub
Private Sub cbRead_Click()
Call ReadRecord
End Sub
В тексте этого кода мы объявили переменные ForFileRecords пользовательского типа для описания структуры файла и nRecNo в качестве счетчика записей. Открывая файл с доступом Random и указанием длины записи в соответствии с длиной переменной ForFileRecords, мы создаем файл требуемой структуры.
8. Запустите приложение. При нажатии кнопки Запись выполняется запись содержимого текстовых полей в файл созданной структуры. При нажатии кнопки Чтение эти данные можно прочитать в текстовом поле последовательно по записям, начиная с первой. При этом каждая кнопка вызывает собственную процедуру выполнения действия.
назад | содержание | вперед