|  | 11.1.3.4 Zeichenkettenbehandlung bei begrenzter Zeichenkettenlänge 
        
        
 
 Das Paket Ada.Strings.Bounded ist ein generisches Paket, das den Typ Bounded_String 
        und dazugehörige Funktionen definiert. Die maximale Länge eines 
        Objekts eines Bounded_String-Typs wird während der Instantiierung 
        festgelegt. Die Unterprogramme für Zeichenketten mit fester Länge 
        gelten in ähnlicher Form auch für Zeichenketten mit begrenzter 
        Länge. Einige dieser Unterprogramme haben ein anderes Verhalten, 
        um der größeren Flexibilität nachzukommen. Zusätzlich 
        existieren noch einige Konstruktions- und Auswahloperationen.
 
 Werte verschiedener Bounded_String-Typen können einander nicht zugewiesen 
        und auch nicht miteinander verglichen werden.
 
 Im Paket vereinbarte Typen und Objekte
 
 1) Max_Length - ist eine Konstante und enthält die maximale Länge 
        für Zeichenketten, die mit dem Bounded_String-Typ
 bearbeitet werden können.
 
 2) Null_Bounded_String - Eine leerer Zeichenkette des Bounded_String-Typs.
 
 3) Bounded_String - ist Typ für Zeichenketten mit begrenzter Länge.
 
 4) Length_Range - ist ein Untertyp von NATURAL mit dem Bereich, der die 
        maximale Größe von 0 .. Max_Length angibt.
 
 
 Die Vergleichsoperatoren "=", "<", "<=", 
        ">", ">=" haben die gleiche Wirkung wie die 
        Funktionen für String-Typen. Bounded_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. Alle Funktionen, bei denen die Möglichkeit 
        besteht, daß die Zeichenkette die maximale Länge des Bounded_String-Typs 
        überschreitet, haben einen Parameter (Typ Truncation) zur Festlegung, 
        ob die Zeichenkette abgeschnitten werden soll, oder ob die Ausnahme Length_Error 
        ausgelöst werden soll.
 
 Für die Funktion "*" existieren jetzt drei Versionen, zum 
        Vervielfältigen von Character, String und Bounded_String. Wenn die 
        Zeichenkette durch die Vervielfältigung zu lang wird, wird immer 
        die Ausnahme Length_Error ausgelöst.
 
 Die zusätzliche Funktion Replicate (auch für Character, String 
        und Bounded_String) ist eine Variante der Funktion "*" und hat 
        zusätzlich den Parameter Drop : in Truncation := Error, wodurch ein 
        Abschneiden der zu lang gewordenen Zeichenkette möglich wird.
 
 Zusätzliche Funktionen für Bounded_String:
 
 
  Liefert die Länge der Zeichenkette "Source".
          | function Length (Source : in Bounded_String) return Length_Range; 
 |  
 
  Liefert die Bounded_String-Version der Zeichenkette "Source".
          | function To_Bounded_String(Source : in String; Drop : in Truncation := Error)
 return Bounded_String;
 
 
 |  
 
  Liefert die String-Version der Bounded_String-Zeichenkette "Source".
          | function To_String (Source : in Bounded_String) return String; 
 |  
 
  Die Funktion Append liefert eine aus den Zeichen/Zeichenketten in "Left" 
        und "Right" zusammengesetzte Bounded_String-Zeichenkette. Die Parameter 
        "Left" und "Right" können jeweils vom Typ Character, String 
        oder Bounded_String sein, wobei mindestens einer der Parameter vom Typ 
        Bounded_String sein muß.
          | function Append (Left : in ...; Right : in ...; Drop : in Truncation := Error) return Bounded_String;
 
 |  
 
  Die Prozedur Append erweitert die Bounded_String-Zeichenkette in "Source" 
        um das Zeichen/die Zeichenkette in "New_Item". Der Parameter "New_Item" 
        kann vom Typ Character, String oder Bounded_String sein.
          | procedure Append (Source : in out Bounded_String; New_Item : in ...; Drop : in Truncation := Error);
 
 |  
 
  Die Funktion "&" liefert eine aus den Zeichen/Zeichenketten 
        in "Left" und "Right" zusammengesetzte Bounded_String-Zeichenkette. 
        Die Parameter "Left" und "Right" können jeweils vom Typ 
        Character, String oder Bounded_String sein, wobei mindestens einer der 
        Parameter vom Typ Bounded_String sein muß. Wenn die Zeichenkette 
        zu lang wird, wird immer die Ausnahme Length_Error ausgelöst.
          | function "&" (Left : in ...; Right : in ...) return Bounded_String; 
 |  
 
  Liefert das Zeichen an Position "Index" der Zeichenkette "Source". 
        Wenn "Index" größer als die Länge der Zeichenkette 
        ist, wird die Ausnahme Index_Error ausgelöst.
          | function Element (Source : in Bounded_String; Index : in Positive) return 
        Character; 
 |  
 
  Ersetzt das Zeichen an Position "Index" der Zeichenkette "Source" 
      durch das Zeichen "By". Wenn "Index" größer als die 
      Länge der Zeichenkette ist, wird die Ausnahme Index_Error ausgelöst.
          | procedure Replace_Element (Source : in out Bounded_String; Index : in 
        Positive; By : in Character); 
 |  
 
  Liefert den Ausschnitt von "Low" bis "High" aus der Zeichenkette 
        "Source". Wenn "Low" größer als die Länge von 
        "Source" ist, wird die Ausnahme Index_Error ausgelöst.
          | function Slice (Source : in Bounded_String; Low : in Positive; High : 
        in Natural) return String; 
 |  
 
 Spezifikation 
      des Paketes "Ada.Strings.Bounded"
 
 
 
 
 
 |