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

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