Справочник по Аде (Ada 2022)
A.11 Ввод-вывод широких текстов и очень широких текстов
Пакеты Wide_Text_IO и Wide_Wide_Text_IO предоставляют средства для ввода-вывода в читаемой человеком форме. Каждый файл читается или записывается последовательно, как последовательность широких символов (или очень широких символов), сгруппированных в строки, а строки сгруппированы в страницы.
Статическая семантика
Спецификация пакета Wide_Text_IO аналогична спецификации Text_IO, за исключением того, что в каждом подпрограмме Get, Look_Ahead, Get_Immediate, Get_Line, Put и Put_Line любая встречающаяся конструкция Character заменяется на Wide_Character, а любая встречающаяся конструкция String заменяется на Wide_String. Негенерические эквиваленты Wide_Text_IO.Integer_IO и Wide_Text_IO.Float_IO предоставляются (как и для Text_IO) для каждого предопределённого числового типа, с именами, такими как Ada.Integer_Wide_Text_IO, Ada.Long_Integer_Wide_Text_IO, Ada.Float_Wide_Text_IO, Ada.Long_Float_Wide_Text_IO.
Спецификация пакета Wide_Wide_Text_IO аналогична спецификации Text_IO, за исключением того, что в каждой подпрограмме Get, Look_Ahead, Get_Immediate, Get_Line, Put и Put_Line любая встречающаяся конструкция Character заменяется на Wide_Wide_Character, а любая встречающаяся конструкция String заменяется на Wide_Wide_String. Негенерические эквиваленты Wide_Wide_Text_IO.Integer_IO и Wide_Wide_Text_IO.Float_IO предоставляются (как и для Text_IO) для каждого предопределённого числового типа, с именами, такими как Ada.Integer_Wide_Wide_Text_IO, Ada.Long_Integer_Wide_Wide_Text_IO, Ada.Float_Wide_Wide_Text_IO, Ada.Long_Float_Wide_Wide_Text_IO.
Спецификация пакета Wide_Text_IO.Wide_Bounded_IO аналогична спецификации Text_IO.Bounded_IO, за исключением того, что любая встречающаяся Bounded_String заменяется на Bounded_Wide_String, а любая встречающаяся конструкция package Bounded заменяется на Wide_Bounded. Спецификация пакета Wide_Wide_Text_IO.Wide_Wide_Bounded_IO аналогична спецификации Text_IO.Bounded_IO, за исключением того, что любая встречающаяся конструкция Bounded_String заменяется на Bounded_Wide_Wide_String, а любая встречающаяся конструкция package Bounded заменяется на Wide_Wide_Bounded.
Спецификация пакета Wide_Text_IO.Wide_Unbounded_IO аналогична спецификации Text_IO.Unbounded_IO, за исключением того, что любая встречающаяся конструкция Unbounded_String заменяется на Unbounded_Wide_String, а любая встречающаяся конструкция package Unbounded заменяется на Wide_Unbounded. Спецификация пакета Wide_Wide_Text_IO.Wide_Wide_Unbounded_IO аналогична спецификации Text_IO.Unbounded_IO, за исключением того, что любая встречающаяся конструкция Unbounded_String заменяется на Unbounded_Wide_Wide_String, а любая встречающаяся конструкция package Unbounded заменяется на Wide_Wide_Unbounded.