package Ada.Text_IO.Editing is
type Picture is private;
function Valid (Pic_String : in String;
Blank_When_Zero
: in Boolean := False) return Boolean;
-- Valid gibt "wahr" zurück, wenn "Pic_String"
eine wohlgeformte
-- Musterzeichenkette (siehe Bilden einer Musterzeichenkette)
-- ist, bei der die Länge der Erweiterung
"Max_Picture_Length"
-- nicht überschreitet und weder "Blank_When_Zero"
"falsch" ist,
-- noch "Pic_String" kein "*" enthält.
function To_Picture (Pic_String : in String;
Blank_When_Zero
: in Boolean := False) return Picture;
-- "To_Picture" gibt ein Ergebnismuster zurück,
sodaß die Anwendung
-- der Funktion "Pic_String" auf dieses Ergebnis
eine erweiterte Musterzeichenkette
-- ergibt, die zu "Pic_String" äquivalent
ist, und die Anwendung von "Blank_When_Zero"
-- auf das Ergebnismuster den gleichen Wert ergibt
wie bei dem Parameter "Blank_When_Zero".
-- Der Fehler "Picture_Error" tritt auf,
wenn Valid (Pic_String,Blank_When_Zero)
-- "falsch" liefert.
function Pic_String (Pic : in Picture) return String;
function Blank_When_Zero (Pic : in Picture) return
Boolean;
-- Wenn Pic das Ergebnis von To_Picture(String_Item,Boolean_Item)
-- ist, dann gilt:* Pic_String(Pic) gibt eine
erweiterte Musterzeichenkette
-- äquivalent zu "String_Item" zurück,
wobei alle Kleinbuchstaben
-- durch Großbuchstaben ersetzt sind.* Blank_When_Zero(Pic)
gibt "Boolean_Item" zurück.
-- Wenn Pic_1 und Pic_2 Objekte vom Typ Picture
sind, dann ist
-- "="(Pic_1,Pic_2) "wahr", wenn * Pic_String(Pic_1)=Pic_String(Pic_2)
und
-- Blank_When_Zero(Pic_1)=Blank_When_Zero(Pic_2).
Max_Picture_Length : constant := <implementierungsabhängig>;
-- "Max_Picture_Length" sollte mindestens
30 sein.
Picture_Error : exception;
Default_Currency : constant String := "$";
-- Währungszeichenketten mit bis zu 10 Zeichen
sind zugelassen.
Default_Fill : constant Character := "*";
Default_Separator : constant Character := ",";
Default_Radix_Mark : constant Character := ".";
generic
type Num is delta <> digits
<>;
Default_Currency : in String
:=
Text_IO.Editing.Default_Currency;
Default_Fill : in Character
:=
Text_IO.Editing.Default_Fill;
Default_Separator : in Character
:=
Text_IO.Editing.Default_Separator;
Default_Radix_Mark: in Character
:=
Text_IO.Editing.Default_Radix_Mark;
package Decimal_Output is
function Length (Pic : in Picture;
Currency : in String := Default_Currency) return Natural;
-- Length gibt Pic_String(Pic)*Length
+ Currency_Length_Adjustment-Radix_Adjustment zurück,
-- wobei * Currency_Length_Adjustment
= CurrencyLength-1,
-- wenn "$" in Pic_String(Pic)
auftritt, ansonsten 0.
-- * Radix_Adjustment = 1, wenn "V"
oder "v" in Pic_String(Pic) auftreten, ansonsten 0.
function Valid (Item : in Num;
Pic
: in Picture;
Currency
: in String := Default_Currency) return Boolean;
-- "Valid" gibt "wahr"
zurück, wenn Image(Item,Pic,Currency)
-- keinen Anordnungsfehler hervorruft,
und ansonsten 0.
function Image (Item : in Num;
Pic
: in Picture;
Currency
: in String := Default_Currency;
Fill
: in Character := Default_Fill;
Separator
: in Character := Default_Separator;
Radix_Mark
: in Character := Default_Radix_Mark) return String;
-- "Image" gibt die aufbereitete
Ausgabezeichenkette wie in
-- Erzeugung einer aufbereiteten
Ausgabe beschrieben
-- zurück. Wenn diese Regeln
einen Anordnungsfehler entdecken,
-- dann wird die Ausnahme "Layout_Error"
angestoßen.
procedure Put (File : in File_Type;
Item
: in Num;
Pic
: in Picture;
Currency
: in String := Default_Currency;
Fill
: in Character := Default_Fill;
Separator
: in Character := Default_Separator;
Radix_Mark
: in Character := Default_Radix_Mark);
procedure Put (Item : in Num;
Pic
: in Picture;
Currency
: in String := Default_Currency;
Fill
: in Character := Default_Fill;
Separator
: in Character := Default_Separator;
Radix_Mark
: in Character := Default_Radix_Mark);
-- Jede dieser "Put"-Prozeduren
gibt Image(Item,Pic,Currency,Fill,Seperator,Radix_Mark)
-- konsistent mit den Konventionen
für "Put" für andere reele Typen im Falle von beschränkten
-- Zeilenlängen (siehe "Get
und Put Procedures" Anlage A) aus.
procedure Put (To : out String;
Item : in Num;
Pic
: in Picture;
Currency
: in String := Currency;
Fill
: in Character := Default_Fill;
Separator
: in Character := Default_Separator;
Radix_Mark
: in Character := Default_Radix_Mark);
-- "Put" kopiert Image(Item,Pic,Currency,Fill,Separator,Radix_Mark)
-- rechtsbündig auf die
Zeichenkette "To".
-- Andernfalls werden den nicht
zugeteilten Zeichen in "To"
-- Leerzeichen zugewiesen. Wenn
ToLength kleiner als die Länge
-- der Ergebniszeichenkette
von "Image" ist, dann tritt ein Anordnungsfehler auf.
end Decimal_Output;
private
... -- nicht definiert
end Ada.Text_IO.Editing;
|