Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курс лекций.docx
Скачиваний:
11
Добавлен:
01.07.2025
Размер:
425 Кб
Скачать
☆

12.5. Ввод и вывод информации записями

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

Определить тип данных для вывода.

Открыть файл как файл с произвольным доступом.

Присвоить переменной информацию, которая должна быть записана в файл.

Первые две операции уже обсуждались в начале лекции. Присваивание переменной информации, используемой для файла с произвольным доступом, аналогично присваиванию значения обычной переменной, выполняемому с помощью оператора присваивания. Однако в данном случае непосредственное присваивание значений переменной в данном случае невозможно. Необходимо присваивать значение каждому элементу переменной, которую вы хотите записать. Присваивание значения элементу переменной пользовательского типа выполняется с помощью операции точка следующим образом.

varname. elementname1 = value

где

varname - имя переменной , которая объявлена как переменная пользовательского типа. Это то же имя, которое использовалось в опраторе Dim.

elementname1 - имя элемента переменной пользовательского типа, которое объявлено в ператоре Type/

value – информация, которую вы хотите поместить в элемент. Это должна быть переменная того же типа, что и тип элемента, объявленного в операторе Type. Value может представлять собой литерал, переменную, выражение или функцию, содержащие операции.

После того как вы определили тип переменной, открыли файл и записали информацию в переменную все готово для вывода информации в файл. Для вывода информации в файл с произвольным доступом используется оператор Put.

Оператор не только указывает в какой файл и какую информацию записывать, но и определяет место в файле, куда будет записана информация.

Синтаксис оператора имеет вид:

Put # filenum, recnum, varname

# filenum – это номер файла, назначенный файлув операторе Open;

varname – Это переменная содержащая информацию для записи в файл;

recnum – Определяет номер записи, в которую будет помещена информация. Этот номер должен быть целым числом больше нуля.

Значение аргумента recnum в основном определяется с помощью программы. Обычно при написании программ, в которых предполагается использовать файлы с произвольным доступом, использует упорядоченный список. содержащий ключевое значение и номер записи. Этот список можно впоследствии использовать для определения номера записи с соответствующей информацией.

Для вывода (чтения) информации из файла с произвольным доступом используется оператор Get, имеющий почти такой же синтаксис, что и для ввода информации в файл. Этой информацией могут быть данные только что записанные в файл, либо любые данные, записанные в него ранее. Синтаксис оператора имеет вид.

Get # filenum, recnum, varname

Примеры:

Put #intFH, 7. Adress ‘ сохраняет 7 –ю запись

Get #intFH, 2, Adress ‘считывает 2 –ю запись из файла.

Для того чтобы в одной записи сохранить несколько значений различных типов следует использовать пользовательские типы данных.

Пример:

<General> <Declaration>

Следует учесть, что описания с помощью оператора Type немогут содержать строк переменной длины. Таким образом, любая строка в операторе Type должна записываться с помощью синаксической формы, включающей указание длины строки.

Type Person

FirstName As String*20

SecondName As String*25

CustomerN As Integer

End Type

Private Customer As Person

‘процедура

Private Sub Command_Click()

intFH = FreeFile

Open “C:\LORE.DAT” For Random As intFH Lan = Lan(Customer)

Get #intFH , 2, Customer

Close #intFH

End If

После завершения работы с файлом его следует закрыть с помощью оператора Close. Это позволит программе очистить буферы данных и освободить дискриптор файла. Синтаксис оператора имеет вид:

Close [filelist], где filelist – перечень номеров файлов. подлежащих закрытию. Это те же номера, что были определены при открытии файлов с помощью опратора Open. Если список содержит более одного номера, их следует разделить запятыми. Если опустить необязательный аргумент filelist], будут закрыты все файлы.

Двоичный формат

Двоичный доступ незначительно отличается от произвольного доступа. Разница состоит в том, что двоичный доступ возможен не к определенному набору данных, а к отдельноьу байту внутри любого файла. Кроме того, вместо ключевого слова Random указывается Binary, и отсутствует параметр Len, так как записи имеют определенную длину - 1 байт.

Синтаксис оператора открытия файла имеет вид:

Open Имя файла For Binary As intFH

Для считывания и записи в файл используются также операторы Get и Put.

Синтаксис их такой же, как и при произвольном доступ, только вместо номера записи указываетсч номер байта.

Пример:

strOutput$ = String(14, “ “)

Get #intFH, 26, strOutput$

В данном примере в строку