Файлы прямого доступа

В файле, присоединенном для прямого доступа, все записи имеют одинаковую длину, которая задается в операторе open, спецификатором recl.

В операторе open для неформатного файла прямого доступа обязательно должны быть спецификаторы:

open (<номер устройства>, file='<имя файла>', access= 'direct',
recl = <размер записи>)

Для определения размера записи можно использовать функцию:

Sizeof ( <имя переменной> (recl = Sizeof (<имя переменной>)

Спецификатор form=' unformatted ' в случае прямого доступа задается по умолчанию и может быть опущен.

В случае форматного файла прямого доступа, он обязателен form=' formatte '.

Каждая запись в файле прямого доступа имеет свой уникальный номер. Читать и записывать данные в файл прямого доступа можно необязательно по порядку их номеров. Можно в него занести запись с любым порядковым номером (например, сначала запись №5, а затем запись №2). Если в файле не было записей с №1 и 2, все равно под них будет зарезервировано место (при просмотре их значения равны нулю).

В неформатном файле прямого доступа можно позиционировать (установить указатель) непосредственно на запись с № n:

В CVF для этих целей можно использовать оператор find.

Find (< номер устройства>, rec=№ n)

Этот оператор только устанавливает указатель на нужную запись.

Или использовать оператор Read ( <номер устройства>, rec=№ n), если хотим прочитать запись и ее анализировать.

При использовании оператора write будет заменена та запись, номер которой задан спецификатором rec=№ n.

Write (<номер устройства>, rec=№ n)<новая запись>

Пример

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: