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

  1. Фраза LINAGE (ВЕРСТКА) указывает на размер логи­ческой страницы в строках. Размер логической страницы есть сумма величин, заданных в каждом варианте фразы, исключая вариант FOOTING (КОНЦОВКА). Если вариант LINES АТ BOTTOM (ВЕРХНЕЕ ПОЛЕ) или LINES АТ ТОР (НИЖНЕЕ ПОЛЕ) не задан, размеры соответствующих полей равны нулю. Если не задан вариант FOOTING (КОНЦОВКА), условие кон­ца страницы не возникает, независимо от того, существует ус­ловие переполнения страницы или нет.

Размер логической страницы может устанавливаться неза­висимо от размера физической страницы.

  1. Целое-1 или значение данного, представленного именем- данного-1, указывает число строк, которые могут быть записаны и (или) пропущены на логической странице. Это значение дол­жно быть больше нуля. Та часть логической страницы, на ко­торой эти строки могут быть записаны и (или) пропущены, на­зывается телом страницы.

  2. Целое-2 или значение данного, представленного именем- данного-2, указывает номер строки тела страницы, на которой начинается область концовки. Это значение должно быть боль­ше нуля, но не должно превышать целое-1 или значение данно­го, представленного именем-данного-1.

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

  1. Целое-3 или значение данного, представленного именем- данного-3, указывает число строк, содержащихся в верхнем по­ле логической страницы. Это значение может быть равно нулю.

  2. Целое-4 или значение данного, представленного именем- данного-4, указывает число строк, содержащихся в нижнем поле логической страницы. Это значение может быть равно нулю.

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

  4. Значения данных, представленных именем-данного-1, именем-данного-3 и именем-данного-4, если они указаны, ис­пользуются следующим образом:

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

  2. во время выполнения оператора WRITE (ПИСАТЬ) с фразой ADVANCING PAGE (ПРОДВИЖЕНИЯ СТРАНИЦЫ) или при возникновении условия переполнения страницы для оп­ределения количества строк в каждой из указанных областей для следующей страницы (п. 4.7 настоящей части).

  1. Значение данного, представленного именем-данного-2, во время выполнения оператора OPEN (ОТКРЫТЬ) с фразой OUTPUT (ВЫХОДНОЙ) используется для определения облас­ти концовки первой логической страницы, а во время выполне­ния оператора WRITE (ПИСАТЬ) с фразой ADVANCING PAGE (ПРОДВИЖЕНИЯ СТРАНИЦЫ) или при возникнове­нии условия переполнения страницы — для определения облас­ти концовки следующей логической страницы.

  2. LINAGE-COUNTER (СЧЕТЧИК-ВЕРСТКИ) генериру­ется, если задана фраза LINAGE (ВЕРСТКА). Его значение в каждый момент времени указывает номер строки тела текущей логической страницы, на которую позиционировано устройство. LINAGE-COUNTER (СЧЕТЧИК-ВЕРСТКИ) подчиняется сле­дующим правилам:

  1. для каждого файла, описанного в секции файлов с фразой LINAGE (ВЕРСТКА), генерируется отдельный LINAGE­COUNTER (СЧЕТЧИК-ВЕРСТКИ);

  2. LINAGE-COUNTER (СЧЕТЧИК-ВЕРСТКИ) может ис­пользоваться в операторах раздела процедур, однако только сис­тема управления вводом-выводом может изменять его значение. Если в программе LINAGE-COUNTER (СЧЕТЧИК-ВЕРСТКИ) используется для нескольких файлов, он должен при необходи­мости уточняться именем файла;

  3. при выполнении оператора WRITE (ПИСАТЬ) связанный с файлом LINAGE-COUNTER (СЧЕТЧИК-ВЕРСТКИ) автома­тически увеличивается по следующим правилам:

  1. если указан оператор WRITE (ПИСАТЬ) с фразой AD­VANCING PAGE (ПРОДВИЖЕНИЯ СТРАНИЦЫ), LINAGE­COUNTER (СЧЕТЧИК-ВЕРСТКИ) автоматически устанавли­вается на 1. После установки счетчика верстки на 1 его значе­ние неявно увеличивается до тех пор, пока не превысит значе­ние, заданное целым-1 или данным, на которое ссылается имя- данного-1;

  2. если во фразе ADVANCING (ПРОДВИЖЕНИЯ) указаны идентификатор-2 или целое-1, LINAGE-COUNTER (СЧЕТЧИК- ВЕРСТК.И) увеличивается на целое-1 или значение данного, представленного идентификатором-2;

  3. если фраза ADVANCING (ПРОДВИЖЕНИЯ) в операто­ре WRITE (ПИСАТЬ) не указана, LINAGE-COUNTER (СЧЕТ- ЧИК-ВЕРСТКИ) увеличивается на 1 (п. 4.7 настоящей части);

  4. когда устройство позиционируется на первую строку каж­дой следующей логической страницы, LINAGE-COUNTER (СЧЕТЧИК.-ВЕРСТКИ) автоматически устанавливается на 1 (п. 4.7 настоящей части);

г) при выполнении оператора OPEN (ОТКРЫТЬ) с фразой OUTPUT (ВЫХОДНОЙ) для соответствующего файла LINA- GE-COUTER (СЧЕТЧИК-ВЕРСТКИ) автоматически устанав­ливается на 1.

(10) Никаких дополнительных пропусков между соседними логическими страницами не делается.

(И) Если определитель файла, соответствующий этой статье описания файла, является внешним определителем файла, все статьи описания файла в пределах одной единицы исполнения, относящиеся к этому определителю файла, должны иметь:

  1. фразу LINAGE (ВЕРСТКА), если хотя бы одна статья описания файла имеет фразу LINAGE (ВЕРСТКА);

  2. одни и те же значения соответственно для целого-1, це­лого-2, целого-3 и целого-4, если они заданы;

  3. одни и те же внешние данные, на которые ссылаются имя- данного-1, имя-данного-2, имя-данного-3 и имя-данного-4.

  1. Фраза RECORD (В ЗАПИСИ)

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

Фраза RECORD (В ЗАПИСИ) задает количество позиций ли­тер в записях фиксированной длины или диапазон числа позиций литер в записях переменной длины. Если число позиций литер ме­няется, фраза задает его минимальное и максимальное значения.

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

Формат 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

  1. Ни одна статья описания записи для файла не может опре­делять число позиций литер, большее, чем целое-1.

Формат 2

  1. Статьи описания записей для файла не должны описы­вать записи, которые содержат меньшее количество позиций ли­тер, чем задано целым-2, или записи, которые содержат количе­ство позиций литер больше, чем задано целым-3. .

  2. Целое-3 должно быть больше целого-2.

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

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

Все форматы

  1. Если фраза RECORD (В ЗАПИСИ) не задана, размер каж­дой записи данных полностью определяется статьей описания за­писи.

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

Формат 1

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

Формат 2

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

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

  1. минимальное число элементов таблицы, описанной в за­писи, используется в вышеупомянутом суммировании для опре­деления минимального количества позиций литер, соответствую­щего описанию записи;

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

  2. Если целое-2 не задано, минимальное количество пози­ций литер, содержащееся в любой записи файла, равно наи­меньшему числу позиций литер, заданному для записей этого файла.

  3. Если целое-3 не задано, максимальное количество пози­ций литер, содержащееся в любой записи файла, равно наиболь­шему числу позиций литер, заданному для записей этого файла.

  4. Если задано имя-данного-1, количество позиций литер записи должно быть помещено в данное, на которое ссылается имя-данного-1, до выполнения любого оператора REWRITE (ОБНОВИТЬ), RELEASE (ПЕРЕДАТЬ) или WRITE (ПИ­САТЬ) для этого файла.

  5. Если задано имя-данного-1, выполнение операторов REWRITE (ОБНОВИТЬ), RELEASE (ПЕРЕДАТЬ), WRITE (ПИСАТЬ), START (ПОДВЕСТИ) или DELETE (УДАЛИТЬ), либо неуспешное выполнение операторов RETURN (ВЕРНУТЬ) или READ (ЧИТАТЬ) не меняет содержимого данного, на кото­рое ссылается имя-данного-1.

  6. Во время выполнения операторов REWRITE (ОБНО­ВИТЬ), RELEASE (ПЕРЕДАТЬ) или WRITE (ПИСАТЬ) коли­чество позиций литер в записи определяется следующим обра­зом:

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

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

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

.

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

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

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

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

    Формат 3

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

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

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

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

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

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

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

    литерал-1


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


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




    I

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

    ЗНАЧЕНИЕ

    ЗНАЧ

    имя-данного-1 | литерал-1
    1. Синтаксические правила

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

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

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

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

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

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

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

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

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