11. Anlage
 
zurück

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"






 
zurück
 Index   Ada Tour - Dokumentation  
© 2003 Förderverein Ada Deutschland e.V.