|
11.1.3.5 Zeichenkettenbehandlung bei unbegrenzter Zeichenkettenlänge
Das Paket Ada.Strings.Unbounded enthält den Typen Unbounded_String
und definiert dazugehörige Funktionen. Die Untergrenze eines Unbounded_String
ist 1, die Obergrenze theoretisch Natural'Last. Die mögliche Länge
richtet sich also nach dem verfügbaren Speicherplatz. Die Unterprogramme
für Zeichenketten mit fester Länge gelten in ähnlicher
Form auch für Zeichenketten mit unbegrenzter Länge. Einige dieser
Unterprogramme haben ein anderes Verhalten, um der größeren
Flexibilität nachzukommen. Zusätzlich existieren noch einige
Konstruktions- und Auswahloperationen.
Typen und Konstanten des Paketes:
1) Null_Unbounded_String - eine Konstante zur Repräsentation einer
leeren Zeichenkette vom Typ Unbounded_String.
2) Unbounded_String - Zeichenketten-Typ mit unbegrenzter Länge.
3) String_Access - Zeiger-Typ für eine Zeichenkette vom Typ String.
Die Vergleichsoperatoren "=", "<", "<=",
">", ">=" haben die gleiche Wirkung wie die
Funktionen für String-Typen. Unbounded_String-Zeichenketten können
auch mit String-Zeichenketten verglichen werden.
Die Unterprogramme zum Suchen (Index, Count, Find_Token), zum Übersetzen
(Translate), zum Umformen (Replace_Slice, Insert, Overwrite, Delete) und
zur Auswahl (Trim, Head, Tail) haben die gleiche Wirkung, wie die gleichnamigen
Unterprogramme für String-Typen, abgesehen davon, daß aufgrund
der "unbegrenzten" Länge die Parameter zum Abschneiden
der Zeichenketten oder zum Auslösen der Ausnahme Length_Error (Typ
Truncation) nicht vorhanden sind.
Für die Funktion "*" existieren jetzt drei Versionen, zum
Vervielfältigen von Character, String und Unbounded_String.
Zusätzliche Funktionen:
function Length (Source : in Unbounded_String) return Natural;
|
Liefert die Länge der Zeichenkette "Source".
procedure Free (X : in out String_Access);
|
Gibt den Speicher, der vom String_Access-Objekt "X" belegt war, frei.
function To_Unbounded_String (Source : in String) return Unbounded_String;
|
Liefert einen Unbounded_String mit dem Inhalt von "Source".
function To_Unbounded_String (Length : in Natural) return Unbounded_String;
|
Liefert einen uninitialisierten Unbounded_String mit der Länge "Length".
function To_String (Source : in Unbounded_String) return String;
|
Liefert die String-Version der Unbounded_String-Zeichenkette "Source".
procedure Append (Source : in Unbounded_String; New_Item : in ...);
|
Die Prozedur Append erweitert die Unbounded_String-Zeichenkette in "Source"
um das Zeichen/die Zeichenkette in "New_Item". Der Parameter "New_Item"
kann vom Typ Character, String oder Unbounded_String sein.
function "&" (Left : in ...; Right : in ...) return Unbounded_String;
|
Die Funktion "&" liefert eine aus den Zeichen/Zeichenketten
in "Left" und "Right" zusammengesetzte Unbounded_String-Zeichenkette.
Die Parameter "Left" und "Right" können jeweils vom Typ
Character, String oder Unbounded_String sein, wobei mindestens einer der
Parameter vom Typ Unbounded_String sein muß.
function Element (Source : in Unbounded_String;
Index : in Positive) return Character;
|
Liefert das Zeichen an Position "Index" der Zeichenkette "Source".
procedure Replace_Element (Source : in out Unbounded_String;
Index :
in Positive;
By : in Character);
|
Ersetzt das Zeichen an Position "Index" der Zeichenkette "Source"
durch das Zeichen "By".
function Slice (Source : in Unbounded_String;
Low : in Positive;
High
: in Natural) return String;
|
Liefert den Ausschnitt von "Low" bis "High" aus der Zeichenkette
"Source".
Spezifikation
des Paketes "Ada.Strings.Unbounded"
|