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

если имя-данного-1 не задано и запись не содержит дан­ных с переменным числом вхождений, — числом позиций литер в записи;

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

.

Если имя-данного-1 задано, после успешного выполне­ния оператора RETURN (ВЕРНУТЬ) или READ (ЧИТАТЬ) для файла содержимое данного, на которое ссылается имя-дан­ного-1, будет указывать число позиций литер только что прочи­танной записи.

Если в операторе RETURN (ВЕРНУТЬ) или READ (ЧИТАТЬ) задана фраза INTO (В), количество позиций литер в текущей записи, участвующей как посылаемое данное в неяв­ном операторе MOVE (ПОМЕСТИТЬ), определяется следую­щим образом:

если задано имя-данного-1, — содержимым данного, на которое ссылается имя-данного-1;

если имя-данного-1 не задано, — значением, которое мог­ло быть помещено в данное, на которое ссылается имя-данно­го-1, если бы оно было задано.

Формат 3

Если используется формат 3 фразы RECORD (В ЗАПИ­СИ), целое-4 и целое-5 ссылаются на минимальное количество ли­тер в записи данных наименьшего размера и на максимальное ко­личество литер в записи данных наибольшего размера соответст­венно. Однако, в этом случае размер каждой записи данных пол­ностью определяется в статье описания записи.

Размер каждой записи данных определяется в терминах! числа позиций литер, необходимых для заполнения логической записи, независимо от типов литер, используемых для представле­ния элементов в логической записи. Размер записи определяется как сумма количества литер всех элементарных данных фиксиро­ванной длины плюс сумма максимального количества литер всех подчиненных записи элементов переменной длины. Эта сумма мо­жет отличаться от фактического размера записи (см. ч. 4, п. 4.3.4; ч. 6, пп. 5.13, 5.14).

3.9. Фраза VALUE (ЗНАЧЕНИЕ)

Назначение

Фраза VALUE (ЗНАЧЕНИЕ) конкретизирует описание дан­ного в записях меток, связанных с файлом.

Фраза VALUE (ЗНАЧЕНИЕ) является устаревшим элементом в настоящем стандарте и будет удалена в следующей редакции стандарта.

Общий формат

литерал-1


I имя-данного-1 |


VALUE OF имя-реализации-1 IS

I имя-реализации-1

ЗНАЧЕНИЕ

ЗНАЧ

имя-данного-1 | литерал-1

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

Имя-данного-1 может быть уточнено, если необходимо, но не может индексироваться или быть описано с фразой USA­GE IS INDEX (ДЛЯ ИНДЕКСА).

Имя-данного-1 должно быть определено в секции рабо­чей памяти.

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

Для входных файлов соответствующая программа обработ­ки метки проверяет, совпадают ли значения имени-реализации-1 и литерала-1 | или значения данного, на которое ссылается имя- |данного-1, в зависимости от того, что из них указано.

Для выходных файлов значение имени-реализации-1 дела­ется равным значению литерала-1 или значению данного, на которое ссылается имя-данного-1, в зависимости от того, что из них указано.

Если соответствующий определитель файла является внешним определителем файла, все фразы VALUE OF (ЗНАЧЕ­НИЕ) в одной и той же единице исполнения, соответствующие это­му определителю файла, должны быть совместимы. Правила сов­местимости определяются реализацией.

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

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

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

PROCEDURE DIVISION.

DECLARATIVES.

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

оператор USE.

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

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

END DECLARATIVES.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Назначение

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

Общий формат

[ NO REWIND I

I LOCK J


WITH


[FOR REMOVAL]


f REEL I UNIT


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

УДАЛЕНИЕМ]


КАТУШКУ ]

ТОМ } имя-файла-1

БЕЗ ПЕРЕМОТКИ ' С ЗАМКОМ


имя-файла-1


ЗАКРЫТЬ.

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

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

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

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

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

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

без катушек (томов). Файл, носитель которого такой, что для него понятие перемотки катушек (томов) не имеет смысла;

последовательный однокатушечный (однотомный). Последо­вательный файл, который полностью располагается на одной ка­тушке (томе);

последовательный файл, который располагается на несколь­ких катушках (томах).

(3) Результаты выполнения каждого типа оператора CLOSE (ЗАКРЫТЬ) для каждой категории файла приведены ниже.

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

Выполняемые действия для различных категорий файла

Без катушек (томов)

Последова­тельный одно­катушечный (однотомный)

Последова­тельны! мно- гокатушечныііг (многотомный)

CLOSE (ЗАКРЫТЬ)

в

в, ж

А, В, Ж

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

в, д

в, ж, д

А, В, Д, Ж

А, Б, В

CLOSE WITH NO REWIND (ЗАКРЫТЬ БЕЗ ПЕРЕМОТКИ)

В, 3

В, Б

CLOSE REEL/UNIT (ЗАКРЫТЬ КАТУШКУ/ТОМ)

Е

Е, Ж

Е, Ж

CLOSE REEL/UNIT FOR REMOVAL (ЗАКРЫТЬ КАТУШКУ/ТОМ С УДАЛЕНИЕМ)

Е

Г, Е, Ж

Г, Е, Ж

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

А — влияние на обработанные ранее катушки (тома).

Входные и входные-выходные файлы. Все катушки (тома) в файле, предшествующие текущей катушке (тому), закрываются, если только для них не выполнялся оператор CLOSE REEL (ЗАК­РЫТЬ КАТУШКУ) или CLOSE UNIT (ЗАКРЫТЬ ТОМ). Если те­кущая катушка (том) в файле не последняя, все следующие ка­тушки (тома) не обрабатываются.

Выходные файлы. Все катушки (тома) файла, предшествую­щие текущей катушке (тому), закрываются, если для них не вы­полнялся оператор CLOSE REEL (ЗАКРЫТЬ КАТУШКУ) или CLOSE UNIT (ЗАКРЫТЬ ТОМ).

Б — текущая катушка не перематывается.

Текущая катушка (том) остается в текущей позиции.

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

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

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

Г ■— удаление катушки (тома).

Если это применимо, производится перемотка текущей ка­тушки или тома и логическое удаление их из единицы исполне­ния. Однако катушка или том может снова стать доступной в порядке расположения катушек или томов в файле, если впос­ледствии за оператором CLOSE (ЗАКРЫТЬ) без фразы REEL (КАТУШКУ) или UNIT (ТОМ) для этого файла будет выпол­нен оператор OPEN (ОТКРЫТЬ).

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

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

Е — закрыть катушку или закрыть том.

Входные и входные-выходные файлы.

Выполняются следующие операции:

если текущая катушка или том является последней или един­ственной для файла или если катушка располагается на носителе иной природы, смена катушки или тома не производится; указа­тель текущего тома остается неизменным;

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

Выходные файлы (носители в виде катушки или тома). Выпол- няются следующие операции:

стандартная процедура обработки конечных меток катушки или тома;

смена катушки (тома). Указатель текущего тома указывает на новую катушку (том);

стандартная процедура обработки начальных меток катуш­ки или тома;

следующий оператор WRITE (ПИСАТЬ) записывает следу­ющую логическую запись на следующую катушку или том данно­го файла.

Выходные файлы (носители не в виде катушки или тома).

Выполнение этого оператора считается успешным. Файл оста­ется открытым; не осуществляются никакие действия, кроме ука­занных в общем правиле (4).

Ж — перемотка.

Текущая катушка или аналогичное устройство устанавливается на физическое начало.

— необязательные фразы игнорируются.

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

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

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

После успешного завершения оператора CLOSE (ЗАК­РЫТЬ) без фразы REEL (КАТУШКУ) или UNIT (ТОМ) область

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

После успешного завершения оператора CLOSE (ЗАК­РЫТЬ) без фразы REEL (КАТУШКУ) или UNIT (ТОМ) файл не входит более в число открытых файлов; он более не связан с опре­делителем файла.

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

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

Назначение

Оператор OPEN (ОТКРЫТЬ) подготавливает файл к обработ­ке. Фраза REVERSED (РЕВЕРСНО) является устаревшим эле­ментом в настоящем стандарте и будет удалена в следующей ре­дакции

Общий формат

OPEN

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

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

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

РЕВЕРСНО

БЕЗ ПЕРЕМОТКИ > ■ •

В ОТКРЫТЬ

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

[БЕЗ ПЕРЕМОТКИ] }...

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

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

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

Фраза REVERSED (РЕВЕРСНО) может указываться только для последовательных файлов.

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

Фраза EXTEND (ДОПОЛНЯЕМЫЙ) может использо­ваться только для файлов, для которых не была указана фраза LINAGE (ВЕРСТКА).

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

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

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

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

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

Таблица 1

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

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

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

INPUT (ВХОДНОЙ)

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

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

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

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

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

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

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

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

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

(Необязательный файл)

OUTPUT (ВЫХОДНОЙ)

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

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

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

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

EXTEND (ДОПОЛНЯЕ­МЫЙ)

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

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

EXTEND (ДОПОЛНЯЕ­МЫЙ) (Необязательный файл)

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

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

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

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

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

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

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

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

Весь розділ →