• RANDOM означает, что файл должен быть открыт для режима произвольного доступа с целью чтения и/или записи (по умолчанию конструкции с FOR файл открывается в этом режиме). При работе с файлами следует иметь в виду, что размер записи во всех режимах с произвольным доступом должен быть фиксирован, а в режимах с последовательным доступом может быть фиксированным или произвольным. В режиме BINARY длина записи равна 1 байту по определению. По умолчанию в команде открытия файла конструкции с ключевым словом LEN длина записи в режиме RANDOM равна 128 байт, а в режимах последовательного доступа при использовании команд чтения и записи с фиксированным размером записи — 512 байт. При назначении фиксированного размера записи конструкцией с ключевым словом LEN можно задать формат записи при помощи DEF TYPE. Этот вариант удобен тем, что преобразование типов при записи и чтении обеспечивается автоматически. Другой менее удобный способ определения формата записи обеспечивается процедурой
FIELD [#]filenumber%, fieldwidth% AS stringvariable$[,fieldwidth% AS stringvariable$]
(9.15),
которая отводит место для переменных в буфере файла произвольного
доступа.
Здесь: fieldwidth% — количество символов в поле записи;
stringvariable$ — переменная, которая идентифицирует поле и должна быть строкой фиксированной длины. В этом случае при записи и чтении числовых данных необходимо пользоваться соответствующими встроенными функциями, осуществляюа1ими перевод из числового представления в строковое и обратно.
При необходимости определения текщего режима работы с файлом можно использовать функцию с числовым значением:
FILEATTR(filenumber%,attribute^ (9.5)
Где: attribute» — означает какого рода информация должна быть выдана, для 1 выдается значение, характеризующее режим доступа:
Значение Режим
1 INPUT
2 OUTPUT 4 RANDOM 8 APPEND 32 BINARY
Для 2 выдаются атрибуты файла в системе MS DOS.
В режиме INPUT допускается только чтение, в режиме OUTPUT -только запись, а в режимах APPEND, BYNARY и RANDOM допускаются как чтение, так и запись. Однако при желании для последних трех режимов можно ограничить способ доступа, используя конструкцию
ACCESS {READ] WRITE I READ WRITE} (9.6),