Оператор открытия файла или устройства ввода-вывода -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 # будут записывать данные в конец файла. |