;>) одно и то же внешнее данное для имепи-даиного-1 во фразе RELATIVE key (ОТНОСИТЕЛЬНЫЙ КЛЮЧ).
Для данных внешней среды принимается внутренний набор литер.
Фраза OPTIONAL (НЕОБЯЗАТЕЛЬНОГО) примени” ма только к файлам, открытым в режиме ввода, ввода-вывода или дополнения. Ее указание требуется для файлов, которые могут отсутствовать во время выполнения объектной программы.
Фраза ASSIGN (НАЗНАЧИТЬ) задает связь между файлом, на который ссылается имя-файла-1, и запоминающей средой, ; на которую ссылается имя-реализации-1 или литерал-1.
Фраза RESERVE (РЕЗЕРВИРОВАТЬ) для модуля от- посителыюго ввода-вывода та же, что к для модуля последовательного ввода-вывода. Описание фразы RESERVE (РЕЗЕРВИРОВАТЬ) находится в ч. 7, и. 2.9.
Фраза FILE STATUS (СОСТОЯНИЕ ФАЙЛА) для модуля относительного ввода-вывода та же, что и для модуля пос- . ледователыюго ввода-вывода. Описание фразы FILE STATUS 1 (СОСТОЯНИЕ ФАЙЛА) находится в ч. 7, п. 2.5. Содержимое дан- ’ ного, связанного с фразой FILE STATUS (СОСТОЯНИЕ ФАЙЛА) ! относительного файла, определяется в п. 1.3.4 настоящей части. |
Фразы ACCESS MODE (ДОСТУП) и ORGANIZATION IS RELATIVE (ОРГАНИЗАЦИЯ ОТНОСИТЕЛЬНАЯ) описываются ниже.
Фраза ACCESS MODE (ДОСТУП)
Назначение
Фраза ACCESS MODE (ДОСТУП) задает порядок, в котором осуществляется доступ к записям в файле.
Общий формат
SEQUENTIAL [RELATIVE KEY IS имя-данного-1]
ACCESS MODE ISH RANDOM ) ncI v„v TC I dynamic; relat,ve ke' is имя-данного-1
ПОСЛЕДОВАТЕЛЬНЫЙ [ОТНОСИТЕЛЬНЫЙ
КЛЮЧ имя-данного-1]
і
доступ;
ПРОИЗВОЛЬНЫЙ і' _ 'ОТНОСИТЕЛЬНЫЙ
динамический' ■
КЛЮЧ имя-данного-1
Синтаксические правила
Имя-данного-1 может быть уточнено.
Имя-данного-1 должно ссылаться на данное, описанное как целое без знака, не содержащее в описании шаблона литеры Р(М).
Имя-данного-1 не должно быть определено в статье описания записи, связанной с этим именем-файла.
Фраза ACCESS MODE IS RANDOM (ДОСТУП ПРОИЗВОЛЬНЫЙ) не должна быть указана для имен-файлов, указанных в фразах USING (ИСПОЛЬЗУЯ) или GIVING (ПОЛУЧАЯ) операторов SORT (СОРТИРОВАТЬ) или MERGE (СЛИТЬ).
|5) Если на относительный файл ссылаются в операторе START (ПОДВЕСТИ), для этого файла должна быть указана фраза RELATIVE KEY (ОТНОСИТЕЛЬНЫЙ КЛЮЧ) во фразе ACCESS MODE (ДОСТУП).
Общие правила
Если фраза ACCESS MODE (ДОСТУП) не задана, предполагается последовательный доступ.
Если доступ последовательный, записи становятся доступными в последовательности, диктуемой организацией файла. Эта последовательность есть возрастающая последовательность относительных номеров записей, находящихся в файле.
Если доступ произвольный, значение данного, определенного как относительный ключ, указывает на запись, к которой должен быть осуществлен доступ.
Если доступ динамический, к записям файла можно обращаться методом последовательного и (или) произвольного доступа.
Записи в относительном файле однозначно идентифицируются относительными номерами записей. Относительный номер записи указывает порядковую позицию логической записи в файле. Первая логическая запись имеет относительный номер записи 1, следующие логические записи имеют относительные номера 2, 3, 4 и так далее.
Данное, представленное именем-данного-1, используется для передачи относительного номера записи между пользователем и СУМП.
Данное, представляющее относительный ключ, связанный с выполнением оператора ввода-вывода, является данным, на которое ссылается имя-данного-1 во фразе ACCESS MORE (ДОСТУП).
Если соответствующий определитель файла является внешним определителем файла, то каждая статья управления файлом в единице исполнения, связанная с этим определителем файла, должна указывать один и тот же метод доступа. Кроме того, имя-данного-1 должно ссылаться на внешнее имя-данного, и фраза RELATIVE KEY (ОТНОСИТЕЛЬНЫЙ КЛЮЧ) в каждой соответствующей статье управления файлом должна в каждом случае ссылаться на одно и то же внешнее имя-данного.
Фраза ORGANIZATION IS RELATIVE (ОРГАНИЗАЦИЯ ОТНОСИТЕЛЬНАЯ)
Назначение
Фраза ORGANIZATION IS RELATIVE (ОРГАНИЗАЦИЯ ОТНОСИТЕЛЬНАЯ) определяет относительную организацию как логическую структуру файла.
Общий формат
[ORGANIZATION IS] RELATIVE
[ОРГАНИЗАЦИЯ]ОТНОСИТЕЛЬНАЯ
Общие правила
Фраза ORGANIZATION IS RELATIVE (ОРГАНИЗАЦИЯ ОТНОСИТЕЛЬНАЯ) определяет относительную организацию как логическую структуру файла. Организация файла устанавливается при создании файла и впоследствии не может быть изменена.
Относительная организация является постоянной логической структурой файла, в которой каждая запись однозначно определяется целым значением больше пуля, которое указывает порядковую позицию записи в файле
.Параграф I-O-CONTROL (УПРАВЛЕНИЕ ВВОДОМ-ВЫВОДОМ)
Назначение
Параграф I-O-CONTROL (УПРАВЛЕНИЕ-ВВОДОМ-ВЫВО- ДОМ) указывает контрольные точки для перепрогона, а также общие области памяти, которые могут совместно использоваться различными файлами. Фраза RERUN (ПЕРЕПРОГОН) параграфа I-O-CONTROL (УПРАВЛЕНИЕ-ВВОДОМ-ВЫВОДОМ) рассматривается в настоящем стандарте как устаревший элемент и будет удалена в следующей редакции стандарта.
Общий формат
I-O-CONTROL.
RERUN ON иімя-файла-1 ;
нмя-реализации-1 і
І целое-1 RECORDS OF имя-файла-2 І
EVERY • целое-2 CLOC1CUNITS [
; имя-условия-1 І *
[SAME I [RECORD] і AREA FOR имя-файла-3
{имя-файла-4}...]...].
УПРАВЛЕНИЕ-ВВОДОМ-ВЫВОДОМ.
гг ПЕРЕПРОГОН НА имя-файла-1 ’
і имя-реализации-1 1 І
[ КАЖДЫЕ целое-1 ЗАПИСЕЙ имя-файла-2 І ...
‘ КАЖДОЕ целое-2 ЕДИНИЦ ВРЕМЕНИ |
-L- і имя-условия-1 с
[ОБЩАЯ ОБЛАСТЬ '[ЗАПИСИ] І ДЛЯ имя-файла-3 {имя-файла-4}. . . ] . . . ].
2.6.3. Общие правила
Фраза RERUN (ПЕРЕПРОГОН) для модуля относительного ввода-вывода является подмножеством фразы RERUN (ПЕРЕПРОГОН) модуля последовательного ввода-вывода. Описание фразы RERUN (ПЕРЕПРОГОН) см. в ч. 7, п. 2.12.
Фраза SAME (ОБЩАЯ) для модуля относительного ввода- вывода та же, что и для модуля последовательного ввода-вывода. Описание фразы SAME (ОБЩАЯ) см. в ч. 7, п. 2.13
.РАЗДЕЛ ДАННЫХ В МОДУЛЕ ОТНОСИТЕЛЬНОГО ВВОД ВЫВОДА
Секция файлов
Информацию о секции файлов см. в ч. 7, п. 3.1.
> ? Статья описания файла
Назначение
Статья описания файла содержит применимую к относительному файлу информацию о физической структуре, идентификации и именах записей.
Общий формат
FD имя-файла-1
[
(
RECORD ’
і 1
I- !
і
BLOCK CONTAINS [ке.юе-і'тО f целое-2 , c^RACTERslCONTAINS целое-3 CHARACTERS i
IS VARYING IN SIZE [[FROM целое-4] [TO целое-5] CHARACTERS] }
DEPENDING ON имя-данного-1] I
CONTAINS целое-6 TO целое-7 CHARACTERS I
і [RECORD IS і] STANDARD ] ‘
І I RECORDS ARE ! I OMITTED [
[
rALUE OF {имя-реализации-1 IS
имя-данного-21 литерал-1[' ATA і RECORD IS
I DATA ( RECORDS ARE j • • •
ОФ имя-файла-1
| 1 fОДТПЛГГ'ГІ ' і
і В БЛОКЕ [ОТ целое-1 ДО]! целое-2 > - [
! - - - I - ' j J111 1 I11N
; целое-3 ЛИТЕР
П
В ЗАПИСИ]
ЕРЕМЕННОЕ ЧИСЛО [[ОТ целое-4] [ДО целое-5] ЛИТЕР][В ЗАВИСИМОСТИ ОТ
имя-да иного-1 ]
! ОТ целое-6 ДО целое-7 ЛИТЕР
МЕТКИ (СТАНДАРТНЫЙ ТУЇ I ОПУЩЕНЫ I
|имя-данного-2 литерал-1
/
I
имя-реализацик-1
(ЗНАЧЕНИЕ I j ЗНАЧ
[ЗАПИСИ ДАННЫХ {имя-данного-3}... ].
С и н т а к с и ч е с к и е правила
Индикатор уровня FD (ОФ) идентифицирует начало статьи описания файла и должен предшествовать имени-файла-1.
Фразы, которые следуют за именем-файла-1, могут задаваться в любом порядке.
Одна или несколько статей описания записи должны следовать за статьей описания файла.
О б щ и е правила
Статья описания файла связывает имя-файла-1 с определителем файла.
Фраза BLOCK CONTAINS (В БЛОКЕ) для модуля относительного ввода-вывода та же, что и для модуля последовательного ввода-вывода. Описание фразы BLOCK CONTAINS (В БЛОКЕ) находится в ч. 7, п. 3.3.
Фраза DATA RECORDS (ЗАПИСИ ДАННЫХ) для модуля относительного ввода-вывода такая же, как и для модуля последовательного ввода-вывода. Описание фразы DATA RECORDS (ЗАПИСИ ДАННЫХ) находится в ч. 7, п. 3.5. Фраза DATA RECORDS (ЗАПИСИ ДАННЫХ) рассматривается в настоящем стандарте как устаревший элемент и будет удалена в следующей редакции стандарта.
Фраза LABEL RECORD (МЕТКИ) для модуля относительного ввода-вывода такая же, как и для модуля последовательного ввода-вывода. Описание фразы LABEL RECORD (МЕТКИ) находится в ч. 7, п. 3.6. Фраза LABEL RECORD (МЕТКИ) рассматривается в настоящем стандарте как устаревший элемент и будет удалена в следующей редакции стандарта.
Фраза RECORD (В ЗАПИСИ) для модуля относительного ввода-вывода такая же, как и для модуля последовательного ввода-вывода. Описание фразы RECORD (В ЗАПИСИ) находится в ч. 7, п. 3.8.
Фраза VALUE OF (ЗНАЧЕНИЕ) для модуля относительного ввода-вывода такая же, как и для модуля последовательного ввода-вывода. Описание фразы VALUE OF (ЗНАЧЕНИЕ) находится в ч. 7, п. 3.9. Фраза VALUE OF (ЗНАЧЕНИЕ) рассматривается в настоящем стандарте как устаревший элемент и будет удалена в следующей редакции стандарта.
РАЗДЕЛ ПРОЦЕДУР В МОДУЛЕ ОТНОСИТЕЛЬНОГО ВВОДА-ВЫВОДА
Общее описание
Если оператор USE (ИСПОЛЬЗОВАТЬ) модуля относительного ввода-вывода имеется в исходной Кобол-программе, раздел процедур содержит декларативные процедуры. Ниже приводится общий формат раздела процедур для случая, когда оператор USE (ИСПОЛЬЗОВАТЬ) указан.
PROCEDURE DIVISION.
DECLARATIVES.
{имя-секции SECTION.
оператор USE.
[имя-параграфа.
[предложение]
END DECLARATIVES.
{имя-секции SECTION.
[имя-параграфа.
[предложение]
РАЗДЕЛ ПРОЦЕДУР.
ДЕКЛАРАТИВЫ.
{СЕКЦИЯ имя-секции.
оператор ИСПОЛЬЗОВАТЬ.
[имя-параграфа.
Предложение] ... ]
КОНЕЦ ДЕКЛАРАТИВ.
{СЕКЦИЯ имя-секции.
[имя-параграфа.
[предложение]. . . ] . . . }
Оператор CLOSE (ЗАКРЫТЬ)
Назначение
Оператор CLOSE (ЗАКРЫТЬ) завершает обработку файла, (возможно, с замком .
Общий формат
CLOSE {имя-файла-1 [WITH LOCK] 1}...
ЗАКРЫТЬ {имя-файла-1 [С~ЗАМКОМ] |} ...
Синтаксическое правило
Файлы, перечисленные в операторе CLOSE (ЗАКРЫТЬ), могут иметь различную организацию и доступ
.Общие правила
Оператор CLOSE (ЗАКРЫТЬ) может быть использован только для файла, который был открыт.
Относительные файлы классифицируются как принадлежащие к категории непоследовательных однотомных или многотомных файлов. Результаты выполнения оператора CLOSE (ЗАКРЫТЬ) для этой категории файлов приведены ниже.
Формат оператора GLOSS (ЗАКРЫТЬ) |
Действия операторов GLOSE (ЗАКРЫТЬ) для непоследовательного однотомного (многотомного) файла |
CLOSE (ЗАКРЫТЬ) |
А |
CLOSE WITH LOCK (ЗАКРЫТЬ С ЗАМКОМ) |
А, Б |
Определения символов А и Б приведены ниже.
Там, где эти определения зависят от того, является ли файл входным, выходным или входным-выходным, приводятся дополнительные пояснения; в противном случае эти определения относятся к входным, выходным и входным-выходным файлам.
А — закрыть файл.
Входные и входные-выходные файлы (доступ последователь- ный). Если файл установлен в конце и указаны записи меток для этого файла, метки обрабатываются в соответствии со стандартной процедурой обработки меток, определенной реализацией. Действия оператора CLOSE (ЗАКРЫТЬ) не определены, когда записи меток специфицированы, но в файле отсутствуют, или когда записи меток не специфицированы, но присутствуют. Выполняются операции закрытия, определенные реализацией. Если файл установлен в конце и записи меток для него не специфицированы, метки не обрабатываются, но другие операции закрытия, определенные реализацией, выполняются. Если файл установлен не в конце, операции закрытия, определенные реализацией, выполняются, но конечные метки не обрабатываются.
Входные и входные-выходные файлы (доступ произвольный или динамический)^. Выходные файлы (доступ произвольный, динамический | или последовательный). Если записи меток для файла специфицированы, метки обрабатываются в соответствии со стандартной процедурой обработки меток, определенной реализацией. Действия оператора CLOSE (ЗАКРЫТЬ) не определены, когда записи меток специфицированы, но в файле отсутствуют, или когда они не специфицированы, но присутствуют. Выполняются операции закрытия, определенные реализацией. Если записи меток для файла не указаны, метки не обрабатываются, но другие операции закрытия, определенные реализацией, выполняются.
Б •— закрыть с замком.
Файл закрыт и не может быть опять открыт во время выполнения этой единицы исполнения.
Выполнение оператора CLOSE (ЗАКРЫТЬ) приводит к изменению значения состояния ввода-вывода, относящегося к име- ни-файла-1 (см. п. 1.3.4 настоящей части).
Если не присутствует необязательный входной файл, для файла не производится обработка конца файла, и указатель позиции файла не меняется.
После успешного завершения оператора CLOSE (ЗАКРЫТЬ) область записи, связанная с именем-файла, становится недоступной. В случае неуспешного выполнения оператора CLOSE (ЗАКРЫТЬ) доступность области записи является неопределенной.
После успешного завершения оператора CLOSE (ЗАКРЫТЬ) файл перестает быть открытым, он больше не связан ни с каким определителем файла.
Если в операторе CLOSE (ЗАКРЫТЬ) указаны несколько имен-файлов, результат выполнения этого оператора CLOSE (ЗАКРЫТЬ) такой же, как если бы отдельный оператор CLOSE (ЗАКРЫТЬ) был написан для каждого имени файла в том порядке, как они указаны в этом операторе CLOSE (ЗАКРЫТЬ).