Перейти до вмісту
ГОСТ 22558-89
/ 116

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

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

Фраза 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 (ЗАКРЫТЬ) завершает обработку файла, ■возможно с замком.

Общий формат

[WITH LOCK]!}


CLOSE {имя-файла-1

ЗАКРЫТЬ {имя-файла-1 j[C ЗАМКОМ] р...

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

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

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

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

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

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

Категория файла

Непоследовательный однотомный (многотомный) фа'Іл

CLOSE (ЗАКРЫТЬ)

А

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

А, Б

Определения символов А и Б следуют далее.

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

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

Входные и входные-выходные файлы (доступ последователь­ный).

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

Входные и входные-выходные файлы (доступ произвольный I или динамический/). Выходные файлы (доступ произвольный [ , динамический/ или последовательный).

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

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

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

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

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

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

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

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

Оператор DELETE (УДАЛИТЬ)

Назначение

Оператор DELETE (УДАЛИТЬ) логически удаляет запись из -файла массовой памяти.

О б щ и й формат

DELETE имя-файла-1 RECORD

[INVALID KEY повелительный-оператор-1]

[NOT INVALID KEY повелительный-оператор-2]

[END-DELETE]

УДАЛИТЬ ЗАПИСЬ имя-файла-1

[ПРИ ОШИБКЕ КЛЮЧА повелительный-оператор-1] [БЕЗ ОШИБКИ КЛЮЧА повелительный-оператор-2] [ КОНЁЩУДАЛИТЬ]

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

Фразы INVALID KEY (ПРИ ОШИБКЕ КЛЮЧА) и NOT INVALID KEY (БЕЗ ОШИБКИ КЛЮЧА) не должны указываться для оператора DELETE (УДАЛИТЬ), который ссылается на файл с последовательным доступом.

Фраза INVALID KEY (ПРИ ОШИБКЕ КЛЮЧА) должна быть указана в операторе DELETE (УДАЛИТЬ), который ссыла­ется на файл не с последовательным доступом и для которого не определена процедура USE AFTER STANDARD EXCEPTION (ИС­ПОЛЬЗОВАТЬ ПОСЛЕ СТАНДАРТНОЙ ПРОЦЕДУРЫ ОШИБ­КИ).

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

Файл, представленный именем-файла-1, должен быть фай­лом массовой памяти. Он должен быть открыт в режиме ввода-вы­вода ко времени выполнения этого оператора (п. 4.4 настоящей части).

Для файлов с последовательным доступом последним опера­тором ввода-вывода, выполняемым для имени-файла-1 перед вы­полнением оператора DELETE (УДАЛИТЬ), должен быть успеш­но выполненный оператор READ (ЧИТАТЬ). Система управления массовой памятью логически удаляет из файла запись, которая бы­ла извлечена по оператору READ (ЧИТАТЬ).

Для индексного файла с произвольным | или динамическим доступом СУМП логически удаляют из файла запись, идентифици­руемую значением данного, определенного как основной ключ, связанный с именем-файла-1. Если файл не содержит записи с указанным ключом, возникает условие ошибки ключа (см. п. 1.3.5 настоящей части).

После успешного выполнения оператора DELETE (УДА­ЛИТЬ) идентифицированная запись логически удаляется из фай­ла и становится недоступной.

Выполнение оператора DELETE (УДАЛИТЬ) не влияет на содержимое области записи | или на содержимое данного, пред­ставленного именем-данного, указанного в варианте DEPEN­DING ON (В ЗАВИСИМОСТИ ОТ) фразы RECORD (В ЗА- ПИСИ), относящейся к имени-файла-1.

Выполнение оператора DELETE (УДАЛИТЬ) не влияет на указатель позиции файла.

При выполнении оператора DELETE (УДАЛИТЬ) обновля­ется значение состояния ввода-вывода, связанного с именем-фай- ла-1 (см. п. 1.3.4 настоящей части).

Передача управления после успешного или неуспешного вы­полнения оператора DELETE (УДАЛИТЬ) зависит от наличия или отсутствия в операторе DELETE (УДАЛИТЬ) необязательных фраз INVALID KEY (ПРИ ОШИБКЕ КЛЮЧА) и NOT INVALID KEY (БЕЗ ОШИБКИ КЛЮЧА) (см. п. 1.3.5 настоящей части).

Фраза END-DELETE (КОНЕЦ-УДАЛИТЬ) ограничивает область действия оператора DELETE (УДАЛИТЬ) (см. ч. 4, п. 6.4.3).

Оператор OPEN (ОТКРЫТЬ)

Назначение

Оператор OPEN (ОТКРЫТЬ) подготавливает файл к обработ­ке.

Общий формат

{INPUT {имя-файла-1}...

І OUTPUT {имя-файла-2}...

OPEN І ЕО {имя-файла-3} ...

І EXTEND {имя-файла-4} ... |

ВХОДНОЙ {имя-файла-1}...

ВЫХОДНОЙ {имя-файла-2}...

ОТКРЫТЬ { ВХОДНОЙ-ВЫХОДНОИ {имя-файла-3} ...

J [ДОПОЛНЯЕМЫЙ {имя-файла-4} ... |

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

Фраза EXTEND (ДОПОЛНЯЕМЫЙ) должна использо­ваться только для файлов с последовательным доступом.

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

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

Успешное выполнение оператора OPEN (ОТКРЫТЬ) дела­ет файл доступным для обработки и файл находится в режиме от­

крытия. Успешное выполнение оператора OPEN (ОТКРЫТЬ) свя­зывает файл с именем-файла посредством определителя файла.

Файл доступен, если он физически имеется в наличии и распо­знан системой управления вводом-выводом.

В табл. 1 показаны результаты открытия доступных и недоступ­ных файлов.

Таблица I

Фраза оператора

Файл доступен

Файл недоступен

INPUT (ВХОДНОЙ)

Нормальное открытие

Открытие неуспешное

INPUT (ВХОДНОЙ) (необязательный файл)

Нормальное открытие

Нормальное открытие; при первом чтении воз­никает условие конца или условие ошибки ключа

1-0 (ВХОДНОЙ-ВЫ- ХОДНОЙ)

Нормальное открытие

Открытие неуспешное

1-0 (ВХОДНОИ-ВЫ- ХОДНОП) (необязательный файл)

Нормальное открытие

Открытие приводит к созданию файла

OUTPUT (ВЫХОДНОЙ)

Нормальное открытие; файл не содержит за­писей

Открытие приводит к созданию файла

EXTEND (ДОПОЛНЯЕ­

МЫЙ)

Нормальное открытие

Открытие неуспешное

EXTEND (ДОПОЛНЯЕ­

МЫЙ) (необязательный файл)

Нормальное открытие

Открытие приводит к созданию файла

Успешное выполнение оператора OPEN (ОТКРЫТЬ) де­лает область записи доступной программе. Если определитель фай­ла, связанный с именем файла, является внешним, то существу­ет единственная область записи, связанная с определителем файла для единицы исполнения.

Если файл не открыт, не может быть выполнен ни один опе­ратор, явно или неявно относящийся к файлу, за исключением опе­ратора MERGE (СЛИТЬ) с фразами USING (ИСПОЛЬЗУЯ) и GIVING (ПОЛУЧАЯ), оператора OPEN (ОТКРЫТЬ) или опера­тора SORT (СОРТИРОВАТЬ) с фразами USING (ИСПОЛЬЗУЯ) и GIVING (ПОЛУЧАЯ).

Оператор OPEN (ОТКРЫТЬ) должен быть успешно вы­полнен перед выполнением любого другого допустимого оператора ввода-вывода. В табл. 2 «X» означает, что указанный оператор, 514

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

Файл может быть открыт с фразами INPUT (ВХОДНОЙ), OUTPUT (ВЫХОДНОЙ) |; EXTEND (ДОПОЛНЯЕМЫЙ) | и 1-0 (ВХОДНОЙ-ВЫХОДНОЙ) в одной и той же единице испол­нения. После первоначального выполнения оператора OPEN (ОТКРЫТЬ) для файла каждому последующему выполнению опе­ратора OPEN (ОТКРЫТЬ) для этого же файла должно предшест- вовать выполнение для него оператора CLOSE (ЗАКРЫТЬ) без | фразы LOCK ТС ЗАМКОМ)', •

Выполнение оператора OPEN (ОТКРЫТЬ) не извлекает и не записывает первую запись данных.

Таблица 2

Меіод доступа файла

Оператор

Режим открытия

для ввода

■ ДЛЯ вывода

ДЛЯ ввода-вы­вода

для дополнения

Последова­тельный

READ (ЧИТАТЬ)

X

X

WRITE (ПИСАТЬ)

X

X

REWRITE (ОБНОВИТЬ)

X

START (ПОДВЕСТИ)

X

X

DELETE (УДАЛИТЬ)

X

Произвольный

READ (ЧИТАТЬ)

X

X

WRITE (ПИСАТЬ)

X

X

REWRITE (ОБНОВИТЬ)

X

START (ПОДВЕСТИ)

DELETE (УДАЛИТЬ)

X

Динамический

READ (ЧИТАТЬ)

X

X

WRITE (ПИСАТЬ)

X

X

REWRITE (ОБНОВИТЬ)

X

START (ПОДВЕСТИ)

X

DELETE (УДАЛИТЬ)

X

Если указаны записи меток для файла, начальные метки обрабатываются следующим образом:

когда указана фраза INPUT (ВХОДНОЙ), оператор OPEN (ОТКРЫТЬ) осуществляет проверку меток в соответствии с про­цедурами, определенными реализацией для проверки входных ме­ток;

когда указана фраза OUTPUT (ВЫХОДНОЙ), выполнение оператора OPEN (ОТКРЫТЬ) вызывает запись меток в соответст­вии с процедурами, определенными реализацией для записи вы­ходных меток.

Действия оператора OPEN (ОТКРЫТЬ) не определены, когда записи меток специфицированы, но в файле отсутствуют, или не специфицированы, но присутствуют.

Если во время выполнения оператора OPEN (ОТКРЫТЬ) возникает условие противоречия свойств файла, выполнение опе­ратора OPEN (ОТКРЫТЬ) считается неуспешным (см. п. 1.3.7 настоящей части).

Если файл, открытый с фразой INPUT (ВХОДНОЙ), яв­ляется необязательным файлом, не имеющимся в наличии, опе­ратор OPEN (ОТКРЫТЬ) устанавливает указатель позиции файла для указания того, что необязательный входной файл отсутствует.

Когда файлы открыты как INPUT (ВХОДНОЙ) или 1-0* (ВХОДНОЙ-ВЫХОДНОЙ), указатель позиции файла устанавли­вается в литеры, имеющие наименьшую порядковую позицию в ос­новной последовательности, связанной с файлом, и основной ключ записи устанавливается как ключ ссылки.

Побачили розбіжність з офіційним текстом?

Повідомити про неточність

Напишіть, що саме розходиться з офіційною публікацією. Код документа вкажіть у повідомленні — так ми швидше знайдемо потрібне місце.

Перейти до форми зворотного зв'язку

Дивіться також

Весь розділ →