Spec-Zone.ru › Ada 2022
Руководство по Ada (Ada 2022)

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, «Ввод-вывод для вещественных типов») обеспечивают текстовый ввод и неотформатированный текстовый вывод для десятичных типов.
ПРИМЕЧАНИЕ Строка шаблона имеет тип Standard.String для Text_IO.Editing, Wide_Text_IO.Editing и Wide_Wide_Text_IO.Editing.


Spec-Zone.ru

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