Spec-Zone.ru › Ada 2012
Справочник Ada 2012

F.3 Отформатированный вывод для десятичных типов

Подпакеты Text_IO.Editing, Wide_Text_IO.Editing и Wide_Wide_Text_IO.Editing предоставляют возможность локализованного форматированного текстового вывода, известного как отформатированный вывод, для десятичных типов. Строка форматированного вывода является функцией числового значения, заданных элементов локали и значения управления форматом. Числовое значение относится к некоторому десятичному типу. Элементы локали включают:
  • строку валюты;
  • символ разделителя групп цифр;
  • символ разделителя дробной части; и
  • символ заполнения, который заменяет ведущие нули числового значения.
Для Text_IO.Editing строки форматированного вывода и валюты имеют тип String, а символы локали — тип Character. Для Wide_Text_IO.Editing их типы — Wide_String и Wide_Character соответственно. Для Wide_Wide_Text_IO.Editing их типы — Wide_Wide_String и Wide_Wide_Character соответственно.
Каждый из элементов локали имеет значение по умолчанию, которое можно заменить или явно переопределить.
Значение управления форматом имеет частный тип Picture; оно определяет состав строки форматированного вывода и контролирует форму и позицию знака, позицию элементов локали и десятичных цифр, наличие или отсутствие разделителя дробной части, подавление ведущих нулей и вставку определенных символов.
Объект Picture состоит из значения String, известного как строка шаблона, которая служит шаблоном для строки форматированного вывода, и логического значения, которое контролирует, будет ли создана строка, состоящая только из пробелов, когда значение числа равно нулю. Строка шаблона состоит из последовательности символов длиной один или два символа, каждый из которых служит местозаменителем символа или строки в соответствующей позиции в строке форматированного вывода. Символы строки шаблона делятся на несколько категорий в зависимости от их влияния на строку форматированного вывода:
Десятичная цифра: '9'
Управление разделителем дробной части: '.' 'V'
Управление знаком: '+' '–' '<' '>' "CR" "DB"
Управление валютой: '$' '#'
Подавление нулей: 'Z' '*'
Простая вставка: '_' 'B' '0' '/'
Записи нечувствительны к регистру. Смешанные или строчные формы для "CR" и "DB", а также строчные формы для 'V', 'Z' и 'B' имеют тот же эффект, что и соответствующие символы в верхнем регистре.
Вхождение символа '9' в строке шаблона представляет позицию десятичной цифры в строке форматированного вывода.
Символ управления разделителем дробной части в строке шаблона указывает позицию разделителя дробной части в строке форматированного вывода: фактическая позиция для '.', или предполагаемая позиция для 'V'.
Символ управления знаком в строке шаблона влияет на форму знака в строке форматированного вывода. Значения символов '<' и '>' обозначают скобки для отрицательных значений. Символ '+', '–' или '<' появляется либо один раз, обозначая знак в фиксированной позиции в строке форматированного вывода, либо повторяется, обозначая знак в плавающей позиции, который предшествует одному или нескольким пробелам и заменяет ведущий 0.
Символ управления валютой в строке шаблона указывает на вхождение строки валюты в строке форматированного вывода. Символ '$' представляет полную строку валюты; символ '#' представляет один символ из строки валюты. Символ '$' появляется либо один раз, обозначая строку валюты в фиксированной позиции в строке форматированного вывода, либо повторяется, обозначая строку валюты в плавающей позиции, которая появляется вместо ведущего 0. Последовательность символов '#' указывает на строку валюты в фиксированной или плавающей позиции в зависимости от контекста.
Символ подавления нулей в строке шаблона позволяет заменить ведущий ноль либо пробелом (для 'Z'), либо символом заполнения (для '*').
Символ простой вставки в строке шаблона обозначает, как правило, либо сам себя (если это '/', или '0'), либо пробел (если это 'B'), либо символ разделителя групп цифр (если это '_'). В некоторых контекстах он обрабатывается как часть плавающего знака, плавающей строки валюты или строки подавления нулей.
Пример строки шаблона: "<###Z_ZZ9.99>". Если строка валюты — "kr", символ разделителя групп — ',', а разделитель дробной части — '.', то строки форматированного вывода для десятичных значений 32.10 и –5432.10 будут соответственно "bbkrbbb32.10b" и "(bkr5,432.10)", где 'b' обозначает пробел.
Обобщенные пакеты Text_IO.Decimal_IO, Wide_Text_IO.Decimal_IO и Wide_Wide_Text_IO.Decimal_IO (см. A.10.9, «Ввод-вывод для вещественных типов») обеспечивают текстовый ввод и неотформатированный текстовый вывод для десятичных типов.
ПРИМЕЧАНИЯ
2 Строка шаблона имеет тип Standard.String для всех Text_IO.Editing, Wide_Text_IO.Editing и Wide_Wide_Text_IO.Editing.


Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API