Оператор открытия файла или устройства ввода-вывода -OPEN

Назначение: Позволяет определить файл или устройство для ввода или вывода данных.

Синтаксис:

1. OPEN <файл> [FOR <тип организации 1>]

[ACCESS <режим доступа>] [<статус доступа>]

AS [#]<номер файла> [LEN = <длина записи>]

2. OPEN <тип организации 2>,[#]<номер файла>, <файл> [, <длина записи>]

Аргумент <файл> - строковое выражение, которое содержит либо зарезервированное слово, определяющее устройство, либо имя файла или маршрут к файлу, аналогично маршруту, определяемому в среде DOS.

Аргумент <тип организации 1> определяет способ организации данных в файле и указывает направление передачи данных.

Аргумент <тип организации 1> Описание
OUTPUT Последовательный файл вывода
INPUT Последовательный файл ввода
APPEND Последовательный расширяемый файл вывода. Указатель позиции в файле устанавливается на конец файла, а указатель номера записи - на последнюю запись. Операторы PRINT # и WRITE # будут записывать данные в конец файла
RANDOM Файл произвольного доступа. Этот режим устанавливается по умолчанию. Если не указана опция ACCESS в этом режиме, то при выполнении оператора OPEN, осуществляются три попытки открыть файл. Попытки установить доступ к файлу выполняются в следующем порядке: 1) чтение/запись; 2) только запись; 3) только чтение
BINARY Двоичный файл. Для чтения и записи информации в любой байт файла используются операторы GET и PUT. Если не определена опция ACCESS, то осуществляются три попытки открыть файл; они следуют в том же порядке, как и для файла произвольного доступа

Аргумент <режим доступа> - выражение, определяющее тип операции, выполняемой над открываемым файлом.

Аргумент <режим доступа> Описание
READ Файл открывается только для чтения;
WRITE Файл открывается только для записи;
READ WRITE Файл открывается как для чтения, так и для записи. Этот режим возможен только для файлов произвольного доступа, двоичных файлов и файлов, открываемых для работы с опцией APPEND;

Опция <статус доступа> используется в многозадачном режиме для ограничения доступа других процессов (задач) к открытому файлу. Тип защиты может быть следующим:

Опция <статус доступа> Описание
Отсутствует (По умолчанию) Если статус доступа не указан, файл может быть открыт для чтения и записи любое число раз в этом процессе, но другим процессам запрещен доступ до тех пор, пока файл открыт
SHARED Любой процесс на любой машине может читать из файла или записывать в него
LOCK READ Другим процессам запрещается чтение из файла. Этот статус допустим только тогда, когда нет других процессов с режимом доступа READ
LOCK WRITE Другим процессам запрещается записывать в файл. Данный статус допускается только при условии, что нет процессов у которых уже установлен режим доступа WRITE
LOCK READ WRITE Другим процессам запрещается как читать из файла, так и записывать в него. Этот статус допустим при отсутствии процессов, имеющих режимы доступа READ или WRITE, а также если ранее не были установлены статусы LOCK READ или LOCK WRITE

Аргумент <номер файла> - числовое выражение целого типа, значение которого должно быть в диапазоне от 1 до 255. Когда выполняется оператор, номер ассоциируется с самим открываемым файлом.

Аргумент <длина записи> - числовое выражение целого типа.

Вторая синтиксическая форма оператора OPEN

Аргумент <тип организации 2> - строковое выражение, единственный символ которого должен быть одним из следующих:

Аргумент <тип организации2> Описание
O Последовательный выводной файл
I Последовательный вводной файл
R Файл произвольного доступа для ввода-вывода
В Двоичный файл
А Последовательный расширяемый файл вывода. Указатель позиции в файле устанавливается на конец файла, а указатель номера записи - на последнюю запись. Операторы PRINT # и WRITE # будут записывать данные в конец файла.