где к' - число статей в справочнике;

р' - число байтов в статье справочника ЗД.



Черт. 8

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

  1. 3.1. Ведущая, метка ЗД

Ведущая метка каждой ЗД должна состоять из полей, приведенных на черт. 9, и определенных далее в пп. 5.3.1.1—5.3.1.7.

  1. 3.1.1. Поле „Длина записи” (ЗД ОП 0-4)

Определяет общую длину ЗД в байтах . Содержание поля цифровое. Значение „0” в этом поле означает длину ЗД, превышающую 99 999ё

  1. 3.1.2. Резерв (ЗД ОП5)

Поле резервируется для последующей стандартизаци

иОП

Имя поля

Длина

Содержимое

0

Длина записи

5 /

Цифры

5

Резерв

1

Символ ПРОБЕЛ

6

Идентификатор ведущей метки

1

Символ

7

Резерв

5

Символы ПРОБЕЛ

12

Базовый адрес области данных пользователя*

5

Цифры

17

Резерв

3

Символы ПРОБЕЛ

20

План статьи

4

Цифры

Черт. 9



  1. Поле „Идентификатор ведущей метки” (ЗД ОП6)

Определяет, что запись является ЗД, и указывает на наличие ведущих меток и справочников в последующих ЗД.

Символы в этом поле означают:

прописная латинская буква D — последующая ЗД содержит метку и справочник;

прописная латинская буква R - ведущая метка и справочник в после­дующих ЗД (следующих за текущей ЗД) отсутствуют, и ведущую метку и справочник текущей ЗД следует применять для каждой последующей ЗД.

  1. езерв (ЗДОП 7-11)

Данное поле резервируется для последующей стандартизации.

  1. Базовый адрес области данных (ЗД ОП 12-16)

Поле определяет позицию первого поля данных пользователя в ЗД.

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

  1. Резерв (ЗДОП17-19)

Поле резервируется для последующей стандартизации

  1. Поле „План статьи” (ЗД ОП20-23)

Определяет длины подполей статей справочника внутри каждой ЗД и состоит из подполей приведенных на черт. 10. Каждое подполе этого по­ля должно содержать одну цифру.

  1. Размер подполя ,Длина поля” (ЗДОП20)

Подполе определяет длину (в байтах) подполя статей справочника „Длина поля” и содержит цифру от 1 до 9 включительно.

  1. Размер подполя „Позиция поля" (ЗД ОП21)

Подполе определяет длину (в байтах) подполя статей справочника „ Позиция поля” и содержит цифру от 1 до 9 включительно

ОП

Имя под поля

Длина

Содержимое

20

Размер подполя „Длина поля”

1

Цифра

21

Размер подполя „Позиция поля”

1

Цифра

22

Резерв

1

Цифра

23

Размер подполя „Метка поля”

1

Цифра

Черт. 10



  1. Резерв (ЗДОП22)

Подполе резервируется для последующей стандартизации в целях рас­ширения плана статьи и содержит цифру 0.

  1. Размер подполя ,,Метка поля ” (ЗД ОП23)

Подполе определяет длину (в байтах) подполя статей справочника „Метка поля” и содержит цифру от 1 до 7 включительно. Значение, указанное в этом подполе, должно быть равно значению, указанному в подполе „Размер подполя „Метка поля” ЗОД ОП 23. .

- Примечание. В п. 5.3 используются следующие обозначения:

m - размер подполя „Длина поля”;

п' - размер подполя „Позиция поля”;

t - размер подполя „Метка поля”.

  1. С п р а в о ч н и к ЗД

Состоит из повторяющихся статей справочника ЗД, длины подполей ко­торых определяются планом статьи. Он должен содержать одну статью спра­вочника для каждого поля данных пользователя и должен заканчиваться раз­делителем поля (1/14). Все метки полей должны быть определены в ЗОД.

Статья справочника определяет местоположение и длину соответствую­щего поля данных пользователя и состоит из подполей, приведенных на черт. 11. Каждая статья содержит метку поля, длину поля и позицию поля в указанной последовательности и состоит из m' + n + t байтов.

Статьи справочника должны однозначно соответствовать полям данных пользователя. Любая метка поля, за исключением метки поля „0 . . . может повторяться в справочнике З Д Для неиерархических структур повто­ряющиеся метки полей должны быть логически смежными в справочни­ке, и метки полей ЗД должны встречаться в том же порядке,что и метки полей ЗОД. Метки полей, соответствующие недостающим полям данных пользователя, могут бьїть опущены в справочнике, если они не требуются для описания структуры. Для иерархических структур данных (по п. 5.2.3.1.3) статьи справочника ЗД должны иметь то! же пордок, что и после- ■ довательность прямого обхода соответствующих полей данных полу­ченного дерева данных этой ЗД. JСтруктура статьи справочника ЗД

ОП

Имя подполя

Длина

Содержимое

Р(і- 1)

Метка поля

t

Буквенно-цифровое

Р (і - 1) + t

Длина поля

m

Цифры

р (і - 1) + t + m'

Позиция поля

/ n

Цифры



где р = t + п/ + п ;

  1. = индекс статьи справочника (і = 1 .. . п).

Черт. 11

  1. . Подполе ,,Метка поля ” ЗД

Содержит метку поля, идентифицирующую поле данных, и может содержать от 1 до 7 буквенно-цифровых символов.

Метка поля „0 ... 1” идентифицирует поле идентификатора записи, должна встречаться только один раз в каждой ЗД и должна быть в справоч­нике ЗД первой.

  1. 2. Подполе, Длина поля ” ЗД

Определяет длину поля (в байтах), которому оно соответствует. Подполе содержит целое число, выровненное вправо и дополненное ведущими ну­лями. Длина поля включает разделитель поля.

  1. 3. Подполе,,Позиция поля ” ЗД

Определяет относительную позицию первого байта в поле, к кото­рому относится статья. Подполе содержит целое число, выровненное вправо и дополненное ведущими нулями. Позицию поля указывают относительно базового адреса области данных пользователя*, указанного в ЗД ОП 12—16. Первый байт первого поля, следующего за справочником, должен иметь нумерацию 0.

  1. О б л а с т ь данных пользователя

Поля данных области данных пользователя содержат информацию пользователя, предназначенную для обмена. Структура данных и тип дан­ных для каждого поля данных определяются полем описания данных ЗОД с соответствующей меткой поля. Подполя содержат элементы данных, соответствующие меткам, приведенным в соответствующих подполях ЗОД. Каждое поле заканчивается разделителем поля (У/14). В структуре с разделителями, где символом разделения подпол ей является символ РЭ (1/15), пропущенные элементы данных должны быть представлены следующими один за другим разделителями. Последовательность разде­лителей смежных подполей может быть заменена разделителем поля (1/14),

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

Описание данных пользователя приведено в разд. 6.

  1. Поле идентификатора записи (метка поля 0 ... 1)

Каждая ЗД содержит только одно поле идентификатора записи. Со­держание поля идентификатора записи ЗД должно согласовываться с соот­ветствующим полем описания данных ЗОД и должно быть уникальным в пределах файла. Идентификатор должен быть выровнен влево и допол­нен справа пробелами (2/0), если он алфавитно-цифровой, или выровнен вправо и дополнен слева нулями (3/0) , если он цифровой.

'Примечание. Уникальные идентификаторы рассмотрены в разд. А. 3 при­ложения А.

  1. Поля данных пользователя

    1. Элементарные символьные поля данных

Поля данных пользователя ЗД содержат строку .символов, заканчи­вающуюся соответствующим разделителем поля (см. табл. 1) .

Файлы обмена, состоящие только из полей данных указанных струк­туры и типа, должны иметь следующие управляющие символы в своей ведущей метке ЗОД:

Поле ведущей метки ОП Символы

Указатель применения 9 ПРОБЕЛ

Длина управляющих элементов поля 10 и 11 00

Остальные поля ведущей метки ЗОД определяются по п. 5.2.1.

  1. Составные поля данных

Данными в этих полях должны быть символы, разделители и строки битов, которые соответствуют определениям, содержащимся в соответст­вующем поле описания данных (по п. 6.2) .

Файлы обмена, состоящие исключительно из полей указанных струк­тур, имеют следующие символы в своей ведущей метке ЗОД:

Поле ведущей метки ОП Символы

Указатель применения 9 ПРОБЕЛ

Длина управляющих элементов поля 10 и 11 06

Остальные поля ведущей метки ЗОД определяются по п. 5.2.1.

  1. ОПИСАНИЕ ТИПОВ И СТРУКТУР ДАННЫХ ПОЛЬЗОВАТЕЛЯ

    1. Описание элементарных символьных полей данных

Настоящий пункт определяет метод описания данных пользователя, представляющих собой строку элементарных символов.

Поле описания данных для элементарных полей данных должно содер­жать только строку символов, представляющую собой имя поля данных пользователя (см. черт. 2).

  1. Описание составных полей данных

Настоящий пункт определяет метод для описания структур и типов данных более сложных, чем те, которые охватывает п. 6.1

.



- Структуры данных, определенные в этом пункте, могут быть элемен­тарными, векторными и структурами массивов, содержащих строки сим­волов, числа с неявной точкой, с явной точкой, масштабированные с явной точкой, строку битов символьного режима, поле битов и смешанные типы данных. Поле описания данных должно содержать управляющую инфор­мацию, разделители, имя поля, метки подполей для векторов и массивов и информацию о формате поля данных по пп. 6.2.1 - 6.2.4 и 7.1.

  1. Поля описания данных

Поля описания данных для составных полей данных должны содер­жать управляющие элементы поля, имя поля данных, метки элементов данных и форматы данных (примеры приведены на черт. 12). Управляю­щие элементы поля, имена, метки, форматы допустимых структур и типов данных приведены в табл. 2 и определяются далее в этом подразделе. Ис­пользование разделителей приведено в табл. 1. Формат поля описания дан­ных определяется по табл. 2.

В

Тип

символ неявная точка явная точка t

масштабированный с явной точкой строка битов символьного режима поле битов смешанный

поле описания данных могут быть описаны следующие типы данных:

Содержимое

строки символов

представление чисел с неявной точкой

представление чисел с явной точкой, немасштабиро- ванное (фиксированная запятая)

представление чисел с явной точкой, масштабиро­

ванное (плавающая запятая)

цифры 0 и 1 -

двоичные цифры

один или более из вышеперечисленных типов данных

В табл. 2 применяются следующие синтаксические правила:

  1. [ ] — определяет необязательность присутствия подполя;

  2. ’имя’ — определяет строку символов, идентицирующую поле в це­лом;

  3. ’векторная метка’ - определяет набор элементарных меток, который соответствует набору подполей в записях данных и имеет вид: метка 1! метка 2! . . .; 1

■ 4) ’декартова метка’ — определяет набор меток, которые включают в себя векторные метки, образующие Декартово произведение, имеющее порядок, соответствующий набору подполей в записях данных, и прини­мает вид: метка 1! метка 2! ... * метка а! метка Ь! . ;

  1. ’уэф’ — определяет управляющие элементы формата, которые со­стоят из строки символов, определяющих формат поля данных.

Чтобы избежать неоднозначности при неполном описании данных, требуется наличие следующих непосредственно друг за другом раздели­телей, указывающих на отсутствие имени, метки или формата.Структура области описания данных для файла уровня 3*

Область описания данных


Поля описания данных



Пример для по­ля элементар­ных данных

*Эти управляю­щие элементы по­ля не использу­ются (см. п. 5.2.3.1.1)

Пример для поля векторных данных

Пример для по­ля массива







Черт. 12


Разделители и их использование


Разделитель

Печатный

Запись

Ис пользо вани е

информации

символ

(РЗ) 1/14

5

ЗОД, ЗД

Разделитель поля

(РЗ) 1/15П

1 &

зд

Разделитель элементов:

1) для ограничения подполей в




полях, где это не определяется фор-




матом;



ЗОД

2) для ограничения до и после не-




обязательного имени поля и вектор­ной метки;



ЗОД

3) для начального ограничения управляющих элементов иерархичес­кой структуры в поле с меткой 0 ... 0;



ЗОД

4) для начального ограничения уп­равляющих элементов формата

(!) 2/1

1

ЗОД

Для ограничения меток элементов данных в пределах векторной метки

(*) 2/10

*

ЗОД

Для ограничения векторных меток в декартовой метке