О б щ и е правила
Фраза LINAGE (ВЕРСТКА) указывает на размер логической страницы в строках. Размер логической страницы есть сумма величин, заданных в каждом варианте фразы, исключая вариант FOOTING (КОНЦОВКА). Если вариант LINES АТ BOTTOM (ВЕРХНЕЕ ПОЛЕ) или LINES АТ ТОР (НИЖНЕЕ ПОЛЕ) не задан, размеры соответствующих полей равны нулю. Если не задан вариант FOOTING (КОНЦОВКА), условие конца страницы не возникает, независимо от того, существует условие переполнения страницы или нет.
Размер логической страницы может устанавливаться независимо от размера физической страницы.
Целое-1 или значение данного, представленного именем- данного-1, указывает число строк, которые могут быть записаны и (или) пропущены на логической странице. Это значение должно быть больше нуля. Та часть логической страницы, на которой эти строки могут быть записаны и (или) пропущены, называется телом страницы.
Целое-2 или значение данного, представленного именем- данного-2, указывает номер строки тела страницы, на которой начинается область концовки. Это значение должно быть больше нуля, но не должно превышать целое-1 или значение данного, представленного именем-данного-1.
Область концовки включает в себя область логической страницы между строкой, определяемой целым-2 или значением данного, представленного именем-данного-2, и строкой, определяемой целым-1 или значением данного, представленного име- нем-данного-1, включительно.
Целое-3 или значение данного, представленного именем- данного-3, указывает число строк, содержащихся в верхнем поле логической страницы. Это значение может быть равно нулю.
Целое-4 или значение данного, представленного именем- данного-4, указывает число строк, содержащихся в нижнем поле логической страницы. Это значение может быть равно нулю.
Целое-1, целое-3 и целое-4, если они указаны, используются во время открытия файла при выполнении оператора OPEN (ОТКРЫТЬ) с фразой OUTPUT (ВЫХОДНОЙ) и указывают число строк, содержащееся в каждой из названных областей логической страницы. Целое-2, если оно указано, должно использоваться во время определения области концовки. Эти значения используются для всех логических страниц, которые записываются в файл, во время выполнения данной программы.
Значения данных, представленных именем-данного-1, именем-данного-3 и именем-данного-4, если они указаны, используются следующим образом:
во время выполнения оператора OPEN (ОТКРЫТЬ) с фразой OUTPUT (ВЫХОДНОЙ) для определения количества строк в каждой из указанных областей для первой логической страницы;
во время выполнения оператора WRITE (ПИСАТЬ) с фразой ADVANCING PAGE (ПРОДВИЖЕНИЯ СТРАНИЦЫ) или при возникновении условия переполнения страницы для определения количества строк в каждой из указанных областей для следующей страницы (п. 4.7 настоящей части).
Значение данного, представленного именем-данного-2, во время выполнения оператора OPEN (ОТКРЫТЬ) с фразой OUTPUT (ВЫХОДНОЙ) используется для определения области концовки первой логической страницы, а во время выполнения оператора WRITE (ПИСАТЬ) с фразой ADVANCING PAGE (ПРОДВИЖЕНИЯ СТРАНИЦЫ) или при возникновении условия переполнения страницы — для определения области концовки следующей логической страницы.
LINAGE-COUNTER (СЧЕТЧИК-ВЕРСТКИ) генерируется, если задана фраза LINAGE (ВЕРСТКА). Его значение в каждый момент времени указывает номер строки тела текущей логической страницы, на которую позиционировано устройство. LINAGE-COUNTER (СЧЕТЧИК-ВЕРСТКИ) подчиняется следующим правилам:
для каждого файла, описанного в секции файлов с фразой LINAGE (ВЕРСТКА), генерируется отдельный LINAGECOUNTER (СЧЕТЧИК-ВЕРСТКИ);
LINAGE-COUNTER (СЧЕТЧИК-ВЕРСТКИ) может использоваться в операторах раздела процедур, однако только система управления вводом-выводом может изменять его значение. Если в программе LINAGE-COUNTER (СЧЕТЧИК-ВЕРСТКИ) используется для нескольких файлов, он должен при необходимости уточняться именем файла;
при выполнении оператора WRITE (ПИСАТЬ) связанный с файлом LINAGE-COUNTER (СЧЕТЧИК-ВЕРСТКИ) автоматически увеличивается по следующим правилам:
если указан оператор WRITE (ПИСАТЬ) с фразой ADVANCING PAGE (ПРОДВИЖЕНИЯ СТРАНИЦЫ), LINAGECOUNTER (СЧЕТЧИК-ВЕРСТКИ) автоматически устанавливается на 1. После установки счетчика верстки на 1 его значение неявно увеличивается до тех пор, пока не превысит значение, заданное целым-1 или данным, на которое ссылается имя- данного-1;
если во фразе ADVANCING (ПРОДВИЖЕНИЯ) указаны идентификатор-2 или целое-1, LINAGE-COUNTER (СЧЕТЧИК- ВЕРСТК.И) увеличивается на целое-1 или значение данного, представленного идентификатором-2;
если фраза ADVANCING (ПРОДВИЖЕНИЯ) в операторе WRITE (ПИСАТЬ) не указана, LINAGE-COUNTER (СЧЕТ- ЧИК-ВЕРСТКИ) увеличивается на 1 (п. 4.7 настоящей части);
когда устройство позиционируется на первую строку каждой следующей логической страницы, LINAGE-COUNTER (СЧЕТЧИК.-ВЕРСТКИ) автоматически устанавливается на 1 (п. 4.7 настоящей части);
г) при выполнении оператора OPEN (ОТКРЫТЬ) с фразой OUTPUT (ВЫХОДНОЙ) для соответствующего файла LINA- GE-COUTER (СЧЕТЧИК-ВЕРСТКИ) автоматически устанавливается на 1.
(10) Никаких дополнительных пропусков между соседними логическими страницами не делается.
(И) Если определитель файла, соответствующий этой статье описания файла, является внешним определителем файла, все статьи описания файла в пределах одной единицы исполнения, относящиеся к этому определителю файла, должны иметь:
фразу LINAGE (ВЕРСТКА), если хотя бы одна статья описания файла имеет фразу LINAGE (ВЕРСТКА);
одни и те же значения соответственно для целого-1, целого-2, целого-3 и целого-4, если они заданы;
одни и те же внешние данные, на которые ссылаются имя- данного-1, имя-данного-2, имя-данного-3 и имя-данного-4.
Фраза RECORD (В ЗАПИСИ)
Назначение
Фраза RECORD (В ЗАПИСИ) задает количество позиций литер в записях фиксированной длины или диапазон числа позиций литер в записях переменной длины. Если число позиций литер меняется, фраза задает его минимальное и максимальное значения.
Общий формат
Формат 1
RECORD CONTAINS целое-1 CHARACTERS
В ЗАПИСИ целое-1 ЛИТЕР
Формат 2
RECORD IS VARYING IN SIZE [[FROM целое-2] [TO_
целое-3] CHARACTERS]
[DEPENDING ON имя-данного-1]
В ЗАПИСИ ПЕРЕМЕННОЕ ЧИСЛО [ [ОТ целое-2] [ДО целое-3] ЛИТЕР]
[В ЗАВИСИМОСТИ ОТ имя-данного-1]
Формат 3
RECORD CONTAINS целое-4 ТО целое-5 CHARACTERS
В ЗАПИСИ ОТ целое-4 ДО целое-5 ЛИТЕР
Синтаксические правила
Формат 1
Ни одна статья описания записи для файла не может определять число позиций литер, большее, чем целое-1.
Формат 2
Статьи описания записей для файла не должны описывать записи, которые содержат меньшее количество позиций литер, чем задано целым-2, или записи, которые содержат количество позиций литер больше, чем задано целым-3. .
Целое-3 должно быть больше целого-2.
Имя-данного-1 должно описывать элементарное целое без знака в секции рабочей памяти или секции связи.
О б щ и е правила
Все форматы
Если фраза RECORD (В ЗАПИСИ) не задана, размер каждой записи данных полностью определяется статьей описания записи.
Если соответствующий определитель файла является внешним определителем файла, все статьи описания файла в пределах одной и той же единицы исполнения, которые соответствуют этому определителю файла, должны задавать одни и те же значения для целого-1 или целого-2 и целого-3. Если фраза RECORD (В ЗАПИСИ) не задана, все статьи описания записей, относящиеся к этому определителю файла, должны иметь одинаковую длину.
Формат 1
Формат 1 используется для описания записей фиксированной длины. Целое-1 задает число позиций литер, содержащихся в каждой записи файла.
Формат 2
Формат 2 используется для описания записей переменной длины. Целое-2 задает минимальное количество позиций литер, которое может содержаться в любой записи файла. Целое-3 задает максимальное количество позиций литер в любой записи файла.
Количество позиций литер, соответствующее статье описания записи, определяется как сумма количества позиций литер во всех элементарных данных, за исключением переопределений и переименований, плюс все неявные заполнители, обусловленные выравниванием. Если задается таблица:
минимальное число элементов таблицы, описанной в записи, используется в вышеупомянутом суммировании для определения минимального количества позиций литер, соответствующего описанию записи;
максимальное число элементов таблицы, описанной в записи, используется в вышеупомянутом суммировании для определения максимального количества литер, соответствующего описанию записи.
Если целое-2 не задано, минимальное количество позиций литер, содержащееся в любой записи файла, равно наименьшему числу позиций литер, заданному для записей этого файла.
Если целое-3 не задано, максимальное количество позиций литер, содержащееся в любой записи файла, равно наибольшему числу позиций литер, заданному для записей этого файла.
Если задано имя-данного-1, количество позиций литер записи должно быть помещено в данное, на которое ссылается имя-данного-1, до выполнения любого оператора REWRITE (ОБНОВИТЬ), RELEASE (ПЕРЕДАТЬ) или WRITE (ПИСАТЬ) для этого файла.
Если задано имя-данного-1, выполнение операторов REWRITE (ОБНОВИТЬ), RELEASE (ПЕРЕДАТЬ), WRITE (ПИСАТЬ), START (ПОДВЕСТИ) или DELETE (УДАЛИТЬ), либо неуспешное выполнение операторов RETURN (ВЕРНУТЬ) или READ (ЧИТАТЬ) не меняет содержимого данного, на которое ссылается имя-данного-1.
Во время выполнения операторов REWRITE (ОБНОВИТЬ), RELEASE (ПЕРЕДАТЬ) или WRITE (ПИСАТЬ) количество позиций литер в записи определяется следующим образом:
если задано имя-данного-1, — содержимым данного, на которое ссылается имя-данного-1;
если имя-данного-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 (ИСПОЛЬЗОВАТЬ).