ГОСТ 22558-89 сторінка 55 з 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 может быть уточнено, если необходимо, но не может индексироваться или быть описано с фразой USAGE 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
Побачили розбіжність з офіційним текстом?