Таблица 1
) Графическое изображение этих разделителей по ИСО 646 (ГОСТ 27465) отсутствует в некоторых печатающих устройствах. Символы, приведенные в графе „Печатный символ”, заменяют стандартное графическое представление разделителей (для удобства чтения) далее по всему тексту стандарта.
У правляющие элементы поля
Управляющие элементы поля в позициях 0-5 состоят из четырех цифровых символов, за которыми следует два определенных пользователем печатных графических символа для представления разделителей информации 1/14, 1/15 в этом же порядке. Относительные позиции 0 и 1 должны интерпретироваться как код структуры и типа. Относительные позиции 2 и 3 резервируются для последующей стандартизации. Значение 00 в относительных позициях 2 и 3 означает, что никакое дополнительное управление не предусмотрено.
Примечание. Два выбранных пользователем печатных графических символа не должны встречаться в полях данных. Они также не должны заменяться разделителями информации ИСО (см. табл. 1) в полях данных, так как вводятся дополнительно для облегчения визуального воспроизведения. Если дополнительный символ не определен, следует использовать по умолчанию символ пробела (2/0)
.
Структура данных: тип данных |
Управляющие элементы поля |
Имя/метка/у правд яющие элементы формата^) |
||
ОП |
||||
0 12 3 |
4 5 |
|||
* Элементарная: символ неявная точка явная точка масштабированный с явной точкой строка битов символьного режима |
00 00 0 10 0 0 2 0 0 0 3 0 0 04 0 0 |
|
[ ’Имя’]; |
|
поле битов |
05 0 0 |
|
[ ’Имя’] & ’уэф’; |
|
Вектор: символ неявная точка явная точка масштабированный с явной точкой строка битов символьного режима |
1000 1100 12 00 13 0 0 14 00 |
; & |
[ ’Имя’] & (’Векторная метка’] & Гуэф’З; , |
|
поле битов смешанный |
15 00 16 00 |
|
[’Имя’] & [’Векторная метка’] & ’уэф’ ; |
|
Массив: символ неявная точка явная точка масштабированный с явной точкой строка битов символьного режима |
20 0 0 2 100 2 2 00 2 3 0 0 24 0 0 |
|
[ ’Имя’] & [ ’Декартова метка’] &[ ’уэф’]; I ’Описатель массива’] |
|
поле битов смешанный |
25 00 26 0 0 |
|
[ ’Имя’] & [ ’Декартова метка’] & ’уэф’; [ Описатель массива’] |
Таблица2
>
Описатели составных полей данных
Описание может быть прервано после любого подполя при помощи разделителя поля (1/14). Печатные символы в настоящем стандарте заменяют разделители информации, символы которых отсутствуют в некоторых устройствах печати. Пользователь может выбрать свои печатные символы для разделителей информации при условии, что они не будут вносить неоднозначность в содержание данных.И м е н а, метки и управляющие элементы формата
Ниже описывается использование имен, меток и управляющих элементов формата.
Имя
Имя является необязательным заголовком для поля данных и его содержимого. В именах допускаются символы национального варианта или символы из набора по умолчанию, как определяется в п. 7.1.
Метка
Метка являете^ необязательным заголовком для элементарных полей данных. Там, где элементарные поля данных образуют вектор, метка должна иметь вид соответствующей векторной метки. Там, где элементарные поля данных образуют массив, метка должна иметь вид соответствующей декартовой метки, которая преобразуется в массив меток, соответствующий массиву данных. Векторные метки, входящие в декартову метку, представляют заголовки строк й столбцов соответствующего массива. Первая векторная метка декартовой метки может быть пустой (т.е. отсутствовать), при этом в описании двух- (и выше) мерного массива строки не будут поименованы. На наличие пустой первой векторной метки указывают расположенные подряд разделители (1/15) и (2/10). Для использования этой конструкции требуется формат, который описывает массив в виде строки. Допускается использование пустых индивидуальных меток в векторных метках при условии наличия всех разделителей (по п. 6.2.4).
В метках допускаются символы национального варианта или символы из набора по умолчанию, как определено в п. 7.1. Символы и являются специальными графическими символами, используемыми для разделения векторных меток, и не должны появляться в имени элемента данных в подполе векторной метки.
Управляющие элементы формата
Управляющие элементы формата определяют посимвольную или побитовую структуру поля данных. Управляющие элементы формата обязательны для данных типа поля битов и смешанных типов данных и необязательны для других типов данных, для которых отсутствие управляющих элементов формата указывает на данные, ограниченные разделителями. Управляющие элементы формата требуются для определения последовательности и типа подполей в поле смешанных данных или для определения ширины поля в полях без разделителей, или для определения разделителей пользователя.
Управляющие элементы формата ограничиваются разделителем элементов (1/15), а в случае последнего подполя — разделителем поля (1/14) и будут иметь вид
({YlmYlk(mY,,...) где Y — подразумевает ZI Z (*) I Z (п) ;
ГА — обозначает символьные данные;
I — обозначает представление чисел с неявной точкой;
R - обозначает представление чисел с явной точкой немасштаби- рованное;
Z = < S — обозначает представление чисел с явной точкой масштабированное;
С — обозначает поле битов символьного режима;
В — обозначает данные поля битов;
ч X - обозначает неиспользуемые позиции символов (содержимое неиспользуемой позиции не определено и должно игнорироваться при обмене);
Примечание. В управляющих элементах формата тип данных указывают прописными латинскими буквами.
обозначает, что заключенное в скобки выражение следует обрабатывать как единое целое при необходимости повторения и вложения;
I - означает выбор одного из выражений, разделенных этим символом;
(*) и (п) - спецификации ширины поля;
* — произвольный разделитель пользователя;
п — положительное целое число, определяющее ширину поля (см. п. 7.6)*;
m, к — положительные целые числа, обозначающие коэффициенты повторения для следующего за ним типа или группы типов данных соответственно;'
... — означает повторение предыдущего выражения.
Использование управляющих элементов формата подчинено следующим правилам:
порядок полей и их тип, определенные управляющими элементами формата, должен соответствовать полю данных, когда просмотр формата происходит слева направо, расширяя вложенные термы слева. Если поле данных не исчерпано, формат должен повторяться с левой круглой скобки последовательно до последней правой круглой скобки, исключая тескобки,кото- рые используются для ограничения ширины поля, и применяя соответствующий коэффициент повторения, если таковой имеется. Если такая правая скобка отсутствует, управление форматом должно вернуться к первой левой круглой скобке спецификации формата;
Z — подразумевает ограничение подполей ЗД разделителем элементов (1/15), и,в случае последнего подполя, разделителем поля (1/14);
(*) — подразумевает применение произвольного символа в качестве разделителя пользователя для соответствующего подполя данных. Разделителем в последнем подполе поля данных дол жен быть разделитель по ля (1/14).
Разделителем пользователя может быть национальный символ или символ из набора по умолчанию, как определено в п. 7.1;
поля данных для 1-типа, R-типа и S-типа определяют число в форме, определенной соответствующими стандартами на представление чисел. Поле R-типа может содержать полностью определенную числовую форму S-типа;
поля данных, содержащие данные в виде строки битов символьного режима (С-тип ), описывают строки битов в виде последовательности символов „0” или „1”, соответствующей цифрам в представленной строке битов;
поля битов фиксированной дпины (В-тип) со спецификацией ширины поля) должны быть определены форматом и не должны иметь ограничителей подполей. Ширина поля битов фиксированной длины задается в битах. Векторы и массивы, содержащие битовые данные фиксированной длины, должны иметь смежные подполя. Последний байт поля битов фиксированной длины или подполя, или ряда смежных полей битов фиксированной длины, или подполей должен быть дополнен справа двоичными нулями. Поле должно заканчиваться разделителем поля. Первое из ряда полей битов фиксированной длины должно начинаться на границе байта, а ряд полей битов фиксированной длины не должен иметь неявного повторения формата от левой скобки;
поля битов переменной длины (В-тип без спецификации ширины поля) определяются следующим образом:
Байт 0 |
Байты 1 . . . п |
Байты |
(п + Г) ... ш |
Счетчик длины поля |
Длина поля битов |
Данные поля битов, содержащие двоичные цифры |
Дополнение нулями до полного байта |
Счетчик длины поля представлен одной цифрой, указывающей число десятичных цифр в элементе формата ,Длина поля бигов'’. Длина поля битов представляет последовательность десятичных цифр, задающих длину поля битов в битах. Поле битов переменной .длины должно начинаться на границе байта.
Примечание. Множество полей битов переменной длины (векторы и массивы) может определяться путем использования соответствующего формата, а поля битов переменной длины могут использоваться в полях смешанных данных.
6.2.4. Ч и с л о элементов в векторах и массивах
Длина (число элементов) вектора определяется его меткой, использованием управляющих элементов формата или использованием разделителей. Размерность и длина массива должны определяться декартовой меткой. Декартова метка не должна состоять из единственной векторной метки, образованной единственным элементом, содержащим исключительно цифры и запятые.
Примечание. Если массив имеет фиксированную размерность и длину во всех записях данных, и декартова метка не требуется, то метку можно заменить описателем массива, состоящим из размерности массива, за которой следует длина каждого вектора, причем все разделяются запятыми.
При отсутствии декартовой метки или описателя массива, полю данных ЗД должно предшествовать положительное целое число, определяющее размерность массива, а также набор целых положительных чисел, определяющий длину каждой размерности. Элементы описания массива должны быть ограничены разделителем элементов (1/15). Массив должен быть упорядочен в виде Строки.
РАСШИРЕНИЯ НАБОРА КОДИРОВАННЫХ СИМВОЛОВ
Использование наборов кодированных символов
Настоящий стандарт требует использования Международной ссылочной версии по стандарту ИСО 646 (ГОСТ 27463) с 7- или 8-битным представлением для всех ведущих меток, статей справочника и управляющих элементов поля и формата, включая разделители информации. Символы национальных вариантов не допускается использовать в управляющих полях, за исключением имен, меток и разделителей пользователя. Ссылка на ИСО 2022 (ГОСТ 27466) дана для использования расширенных кодов в полях данных, разделителях пользователя, именах и метках. Использование расширений кодированных наборов символов, определенных в ИСО 2022 (ГОСТ 27466) как наборы символов по умолчанию, в полях данных, именах, метках и для разделителей пользователя должно быть ограничено наборами, имеющими последовательности АР2 размером в три или четыре символа, как указано в ИСО 2022 (ГОСТ 27466).
Примечание. Расширение набора символов по умолчанию может быть объявлено для файла или отдельно для каждого поля данных, как описано в данном разделе.
Внутри полей данных можно использовать наборы символов национальных вариантов и любой из символьных наборов СО, С1, ГО, Г1, Г2 и ГЗ, как описано в ИСО 2022 (ГОСТ 27466), без ограничения длины последовательности АР2.
Бели расширенный набор Г1 указан как набор символов по умолчанию в 7-битном представлении, то поля разделителей пользователя, меток и имен должны начинаться с набора ГО, пока не появится управляющий символ ВЫХ для вызова набора Г1. Действие вызванного набора должно заканчиваться с окончанием поля.
Вызов наборов символов по умолчанию для полей
Для каждого поля набор символов по умолчанию, имеющий п-символь- ную последовательность АР2, вызывается посредством размещения в ЗОД ОП 17-19 символов (2/0) (2/1) (2/0) и увеличением длины подполя управляющих элементов поля на три байта.
/Три дополнительных байта, следующие непосредственно за управляющими элементами поля ЗОД (см. табл. 2), должны содержать последние (п - 1) символов последовательности АР2 (где п < 4), используемых для определения расширенного набора символов для соответствующего поля данных. Символы из последовательности АР2 должны быть выровнены влево и, если необходимо, поле должно быть дополнено справа символами (2/0) . Если для некоторого поля не определено расширение набора символов, то эти три байта должны содержать символы ПРОБЕЛ.
Вызов набора символов по умолчанию для файла