;>) одно и то же внешнее данное для имепи-даиного-1 во фра­зе RELATIVE key (ОТНОСИТЕЛЬНЫЙ КЛЮЧ).

  1. Для данных внешней среды принимается внутренний набор литер.

  2. Фраза OPTIONAL (НЕОБЯЗАТЕЛЬНОГО) примени” ма только к файлам, открытым в режиме ввода, ввода-вывода или дополнения. Ее указание требуется для файлов, которые мо­гут отсутствовать во время выполнения объектной программы.

  3. Фраза ASSIGN (НАЗНАЧИТЬ) задает связь между фай­лом, на который ссылается имя-файла-1, и запоминающей средой, ; на которую ссылается имя-реализации-1 или литерал-1.

  4. Фраза RESERVE (РЕЗЕРВИРОВАТЬ) для модуля от- посителыюго ввода-вывода та же, что к для модуля последова­тельного ввода-вывода. Описание фразы RESERVE (РЕЗЕР­ВИРОВАТЬ) находится в ч. 7, и. 2.9.

  5. Фраза FILE STATUS (СОСТОЯНИЕ ФАЙЛА) для мо­дуля относительного ввода-вывода та же, что и для модуля пос- . ледователыюго ввода-вывода. Описание фразы FILE STATUS 1 (СОСТОЯНИЕ ФАЙЛА) находится в ч. 7, п. 2.5. Содержимое дан- ’ ного, связанного с фразой FILE STATUS (СОСТОЯНИЕ ФАЙЛА) ! относительного файла, определяется в п. 1.3.4 настоящей части. |

  6. Фразы ACCESS MODE (ДОСТУП) и ORGANIZATION IS RELATIVE (ОРГАНИЗАЦИЯ ОТНОСИТЕЛЬНАЯ) описывают­ся ниже.

  1. Фраза ACCESS MODE (ДОСТУП)

    1. Назначение

Фраза ACCESS MODE (ДОСТУП) задает порядок, в котором осуществляется доступ к записям в файле.

  1. Общий формат

SEQUENTIAL [RELATIVE KEY IS имя-данного-1]

ACCESS MODE ISH RANDOM ) ncI vv TC I dynamic; relat,ve ke' is имя-данного-1

ПОСЛЕДОВАТЕЛЬНЫЙ [ОТНОСИТЕЛЬНЫЙ

КЛЮЧ имя-данного-1]

і

доступ;

ПРОИЗВОЛЬНЫЙ і

' _ 'ОТНОСИТЕЛЬНЫЙ

динамический' ■

КЛЮЧ имя-данного-1

  1. Синтаксические правила

  1. Имя-данного-1 может быть уточнено.

  2. Имя-данного-1 должно ссылаться на данное, описанное как целое без знака, не содержащее в описании шаблона литеры Р(М).

  3. Имя-данного-1 не должно быть определено в статье описа­ния записи, связанной с этим именем-файла.

  4. Фраза ACCESS MODE IS RANDOM (ДОСТУП ПРОИЗ­ВОЛЬНЫЙ) не должна быть указана для имен-файлов, указан­ных в фразах USING (ИСПОЛЬЗУЯ) или GIVING (ПОЛУЧАЯ) операторов SORT (СОРТИРОВАТЬ) или MERGE (СЛИТЬ).

|5) Если на относительный файл ссылаются в операторе START (ПОДВЕСТИ), для этого файла должна быть указана фраза RELATIVE KEY (ОТНОСИТЕЛЬНЫЙ КЛЮЧ) во фра­зе ACCESS MODE (ДОСТУП).

  1. Общие правила

  1. Если фраза ACCESS MODE (ДОСТУП) не задана, пред­полагается последовательный доступ.

  2. Если доступ последовательный, записи становятся доступ­ными в последовательности, диктуемой организацией файла. Эта последовательность есть возрастающая последовательность от­носительных номеров записей, находящихся в файле.

  3. Если доступ произвольный, значение данного, определен­ного как относительный ключ, указывает на запись, к которой дол­жен быть осуществлен доступ.

  4. Если доступ динамический, к записям файла можно об­ращаться методом последовательного и (или) произвольного доступа.

  5. Записи в относительном файле однозначно идентифициру­ются относительными номерами записей. Относительный номер записи указывает порядковую позицию логической записи в фай­ле. Первая логическая запись имеет относительный номер записи 1, следующие логические записи имеют относительные номера 2, 3, 4 и так далее.

  6. Данное, представленное именем-данного-1, используется для передачи относительного номера записи между пользовате­лем и СУМП.

  7. Данное, представляющее относительный ключ, связанный с выполнением оператора ввода-вывода, является данным, на ко­торое ссылается имя-данного-1 во фразе ACCESS MORE (ДОС­ТУП).

  8. Если соответствующий определитель файла является внеш­ним определителем файла, то каждая статья управления файлом в единице исполнения, связанная с этим определителем файла, долж­на указывать один и тот же метод доступа. Кроме того, имя-дан­ного-1 должно ссылаться на внешнее имя-данного, и фраза RELA­TIVE KEY (ОТНОСИТЕЛЬНЫЙ КЛЮЧ) в каждой соответствую­щей статье управления файлом должна в каждом случае ссылать­ся на одно и то же внешнее имя-данного.

  1. Фраза ORGANIZATION IS RELATIVE (ОРГАНИЗАЦИЯ ОТНОСИТЕЛЬНАЯ)

    1. Назначение

Фраза ORGANIZATION IS RELATIVE (ОРГАНИЗАЦИЯ ОТ­НОСИТЕЛЬНАЯ) определяет относительную организацию как логическую структуру файла.

  1. Общий формат

[ORGANIZATION IS] RELATIVE

[ОРГАНИЗАЦИЯ]ОТНОСИТЕЛЬНАЯ

  1. Общие правила

  1. Фраза ORGANIZATION IS RELATIVE (ОРГАНИЗАЦИЯ ОТНОСИТЕЛЬНАЯ) определяет относительную организацию как логическую структуру файла. Организация файла устанавли­вается при создании файла и впоследствии не может быть изме­нена.

Относительная организация является постоянной логиче­ской структурой файла, в которой каждая запись однозначно оп­ределяется целым значением больше пуля, которое указывает порядковую позицию записи в файле

  1. .Параграф I-O-CONTROL (УПРАВЛЕНИЕ ВВОДОМ-ВЫ­ВОДОМ)

    1. Назначение

Параграф I-O-CONTROL (УПРАВЛЕНИЕ-ВВОДОМ-ВЫВО- ДОМ) указывает контрольные точки для перепрогона, а также общие области памяти, которые могут совместно использоваться различными файлами. Фраза RERUN (ПЕРЕПРОГОН) парагра­фа I-O-CONTROL (УПРАВЛЕНИЕ-ВВОДОМ-ВЫВОДОМ) рас­сматривается в настоящем стандарте как устаревший элемент и будет удалена в следующей редакции стандарта.

  1. Общий формат

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. Общие правила

  1. Фраза RERUN (ПЕРЕПРОГОН) для модуля относительно­го ввода-вывода является подмножеством фразы RERUN (ПЕРЕ­ПРОГОН) модуля последовательного ввода-вывода. Описание фразы RERUN (ПЕРЕПРОГОН) см. в ч. 7, п. 2.12.

Фраза SAME (ОБЩАЯ) для модуля относительного ввода- вывода та же, что и для модуля последовательного ввода-вывода. Описание фразы SAME (ОБЩАЯ) см. в ч. 7, п. 2.13

  1. .РАЗДЕЛ ДАННЫХ В МОДУЛЕ ОТНОСИТЕЛЬНОГО ВВОД ВЫВОДА

    1. Секция файлов

Информацию о секции файлов см. в ч. 7, п. 3.1.

> ? Статья описания файла

  1. Назначение

Статья описания файла содержит применимую к относитель­ному файлу информацию о физической структуре, идентификации и именах записей.

  1. Общий формат

FD имя-файла-1

[

(

RECORD ’

і 1

I- !

і

BLOCK CONTAINS [ке.юе-і'тО f целое-2 , c^RACTERsl

CONTAINS целое-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}... ].

  1. С и н т а к с и ч е с к и е правила

  1. Индикатор уровня FD (ОФ) идентифицирует начало статьи описания файла и должен предшествовать имени-файла-1.

  2. Фразы, которые следуют за именем-файла-1, могут зада­ваться в любом порядке.

  3. Одна или несколько статей описания записи должны сле­довать за статьей описания файла.

  1. О б щ и е правила

  1. Статья описания файла связывает имя-файла-1 с определи­телем файла.

  2. Фраза BLOCK CONTAINS (В БЛОКЕ) для модуля отно­сительного ввода-вывода та же, что и для модуля последователь­ного ввода-вывода. Описание фразы BLOCK CONTAINS (В БЛО­КЕ) находится в ч. 7, п. 3.3.

  3. Фраза DATA RECORDS (ЗАПИСИ ДАННЫХ) для моду­ля относительного ввода-вывода такая же, как и для модуля пос­ледовательного ввода-вывода. Описание фразы DATA RECORDS (ЗАПИСИ ДАННЫХ) находится в ч. 7, п. 3.5. Фраза DATA RE­CORDS (ЗАПИСИ ДАННЫХ) рассматривается в настоящем стандарте как устаревший элемент и будет удалена в следующей редакции стандарта.

  4. Фраза LABEL RECORD (МЕТКИ) для модуля относитель­ного ввода-вывода такая же, как и для модуля последовательного ввода-вывода. Описание фразы LABEL RECORD (МЕТКИ) на­ходится в ч. 7, п. 3.6. Фраза LABEL RECORD (МЕТКИ) рассмат­ривается в настоящем стандарте как устаревший элемент и будет удалена в следующей редакции стандарта.

  5. Фраза RECORD (В ЗАПИСИ) для модуля относительно­го ввода-вывода такая же, как и для модуля последовательного ввода-вывода. Описание фразы RECORD (В ЗАПИСИ) находит­ся в ч. 7, п. 3.8.

  6. Фраза VALUE OF (ЗНАЧЕНИЕ) для модуля относитель­ного ввода-вывода такая же, как и для модуля последовательного ввода-вывода. Описание фразы VALUE OF (ЗНАЧЕНИЕ) нахо­дится в ч. 7, п. 3.9. Фраза VALUE OF (ЗНАЧЕНИЕ) рассматрива­ется в настоящем стандарте как устаревший элемент и будет уда­лена в следующей редакции стандарта.

  1. РАЗДЕЛ ПРОЦЕДУР В МОДУЛЕ ОТНОСИТЕЛЬНОГО ВВОДА-ВЫВОДА

    1. Общее описание

Если оператор USE (ИСПОЛЬЗОВАТЬ) модуля относитель­ного ввода-вывода имеется в исходной Кобол-программе, раздел процедур содержит декларативные процедуры. Ниже приводится общий формат раздела процедур для случая, когда оператор USE (ИСПОЛЬЗОВАТЬ) указан.

PROCEDURE DIVISION.

DECLARATIVES.

{имя-секции SECTION.

оператор USE.

[имя-параграфа.

[предложение]

END DECLARATIVES.

{имя-секции SECTION.

[имя-параграфа.

[предложение]

РАЗДЕЛ ПРОЦЕДУР.

ДЕКЛАРАТИВЫ.

{СЕКЦИЯ имя-секции.

оператор ИСПОЛЬЗОВАТЬ.

[имя-параграфа.

Предложение] ... ]

КОНЕЦ ДЕКЛАРАТИВ.

{СЕКЦИЯ имя-секции.

[имя-параграфа.

[предложение]. . . ] . . . }

  1. Оператор CLOSE (ЗАКРЫТЬ)

    1. Назначение

Оператор CLOSE (ЗАКРЫТЬ) завершает обработку файла, (возможно, с замком .

  1. Общий формат

CLOSE {имя-файла-1 [WITH LOCK] 1}...

ЗАКРЫТЬ {имя-файла-1 [С~ЗАМКОМ] |} ...

  1. Синтаксическое правило

Файлы, перечисленные в операторе CLOSE (ЗАКРЫТЬ), могут иметь различную организацию и доступ

  1. .Общие правила

  1. Оператор CLOSE (ЗАКРЫТЬ) может быть использован только для файла, который был открыт.

  2. Относительные файлы классифицируются как принадлежа­щие к категории непоследовательных однотомных или многотом­ных файлов. Результаты выполнения оператора CLOSE (ЗАК­РЫТЬ) для этой категории файлов приведены ниже.

Формат оператора GLOSS (ЗАКРЫТЬ)

Действия операторов GLOSE (ЗАКРЫТЬ) для непоследовательного однотомного (многотомного) файла

CLOSE (ЗАКРЫТЬ)

А

CLOSE WITH LOCK (ЗАКРЫТЬ С ЗАМКОМ)

А, Б

Определения символов А и Б приведены ниже.

Там, где эти определения зависят от того, является ли файл входным, выходным или входным-выходным, приводятся допол­нительные пояснения; в противном случае эти определения отно­сятся к входным, выходным и входным-выходным файлам.

А — закрыть файл.

Входные и входные-выходные файлы (доступ последователь- ный). Если файл установлен в конце и указаны записи меток для этого файла, метки обрабатываются в соответствии со стандартной процедурой обработки меток, определенной реализацией. Дейст­вия оператора CLOSE (ЗАКРЫТЬ) не определены, когда записи меток специфицированы, но в файле отсутствуют, или когда за­писи меток не специфицированы, но присутствуют. Выполняются операции закрытия, определенные реализацией. Если файл уста­новлен в конце и записи меток для него не специфицированы, мет­ки не обрабатываются, но другие операции закрытия, определен­ные реализацией, выполняются. Если файл установлен не в конце, операции закрытия, определенные реализацией, выполняются, но конечные метки не обрабатываются.

Входные и входные-выходные файлы (доступ произвольный или динамический)^. Выходные файлы (доступ произвольный, динамический | или последовательный). Если записи меток для файла специфицированы, метки обрабатываются в соответствии со стандартной процедурой обработки меток, определенной реали­зацией. Действия оператора CLOSE (ЗАКРЫТЬ) не определены, когда записи меток специфицированы, но в файле отсутствуют, или когда они не специфицированы, но присутствуют. Выполняют­ся операции закрытия, определенные реализацией. Если записи меток для файла не указаны, метки не обрабатываются, но другие операции закрытия, определенные реализацией, выполняются.

Б •— закрыть с замком.

Файл закрыт и не может быть опять открыт во время выпол­нения этой единицы исполнения.

  1. Выполнение оператора CLOSE (ЗАКРЫТЬ) приводит к изменению значения состояния ввода-вывода, относящегося к име- ни-файла-1 (см. п. 1.3.4 настоящей части).

  2. Если не присутствует необязательный входной файл, для файла не производится обработка конца файла, и указатель по­зиции файла не меняется.

  3. После успешного завершения оператора CLOSE (ЗАК­РЫТЬ) область записи, связанная с именем-файла, становится не­доступной. В случае неуспешного выполнения оператора CLOSE (ЗАКРЫТЬ) доступность области записи является неопределен­ной.

  4. После успешного завершения оператора CLOSE (ЗАК­РЫТЬ) файл перестает быть открытым, он больше не связан ни с каким определителем файла.

  5. Если в операторе CLOSE (ЗАКРЫТЬ) указаны несколько имен-файлов, результат выполнения этого оператора CLOSE (ЗА­КРЫТЬ) такой же, как если бы отдельный оператор CLOSE (ЗА­КРЫТЬ) был написан для каждого имени файла в том порядке, как они указаны в этом операторе CLOSE (ЗАКРЫТЬ).