Index

Erstellen einfacher Programme

1. Datentypen (6)


Strukturierte Typen

2. Zeichenketten-Typ

Zeichenketten sind eindimensionale Felder vom Typ Char, allerdings mit besonderer Behandlung. Die einzelnen Zeichen werden ab der Positionen 1 abgelegt. Die aktuelle Zeichenkettenlänge wird an der Position 0 abgelegt. In diesem Fall kann die maximale Länge 255 Zeichen sein. Der Speicherbedarf ist 256 Byte. Je nach Zuweisung einer Zeichenkette wird das Längenbyte (Position 0) automatisch gesetzt. In Delphi heißt dieser Typ ShortString. Bei der Deklaration können auch kleinere maximale Längen als 255 festgelegt werden. Hierzu wird die maximale Länge in eckiger Klammer festgelegt:
string[50] belegt 51 Byte im Speicher, 50 Zeichen und das Längenbyte. Einer Zeichenkettenvariable kann eine Konstante oder ein Ausdruck direkt zugewiesen werden, dies muss also nicht wie bei Feldern elementeweise geschehen. Nur hierbei wird das Längenbyte angepasst. Z.B. Wort := 'Haus'. Allerdings können die einzelnen Zeichen einer Zeichenkette wie bei einem Feld bearbeitet werden: Wort[3] würde nach obiger Zuweisung 'u' liefern. Die Zuweisung Wort[1]:='M' würde den Inhalt von Wort zu 'Maus' ändern. Beim direkten Zugriff kann auf jede Position bis zur maximalen Länge zugegriffen werden. Es bleibt dem Programmierer selbst überlassen, festzustellen ob er sich im gültigen Bereich eines Eintrags befindet. Z.B. kann mit der length-Funktion die aktuell gültige Länge des Inhalts ermittelt werden.

Wird bei einer kleineren maximalen Längenvereinbarung ein zu langes Wort zugewiesen, werden die überzähligen Zeichen abgeschnitten.
In Delphi gibt es den generischen Typ string. Dieser ist kompatibel zum Typ AnsiString falls die Compilerdirektive {$H+} aktiv ist, was voreingestellt ist. Bei {$H-} ist string kompatibel zu ShortString.

Der Typ AnsiString kann 231 Zeichen speichern. Der Speicher wird hierbei dynamisch von 4 Byte bis 2 GByte belegt.

Zur Bearbeitung von Zeichenketten existieren besondere Funktionen und Prozeduren (Auswahl):
function Concat (s1[,s2,s3,..,sn]:string):string
(hierfür kann auch der + - Operator verwendet werden)
Fügt die Zeichenketten s1, s2, ... aneinander
function Copy(s:string; Stelle,Anzahl:Integer):string Liefert Anzahl Zeichen der Zeichenkette s ab der Position Stelle
function Pos(Teilstring,s:string):Byte Ermittelt die Position, ab der Teilstring in s enthalten ist
function Length(s:string):Integer Ermittelt die aktuelle Länge von s
function LowerCase(s:string):string Wandelt alle Zeichen von s in Kleinbuchstaben um
function UpperCase(s:string):string Wandelt alle Zeichen von s in Großbuchstaben um
procedure Insert(Quelle:string; var s:string; Stelle:Integer) Fügt Quelle ab Position Stelle in die Zeichenkette s ein
procedure Delete(var s:string; Stelle,Anzahl:Integer) Löscht Anzahl Zeichen der Zeichenkette s ab der Position Stelle

[Index] [Zurück/Datentypen 5] [Fortsetzung/Datentypen 7]


Autor: Jürgen Dehmer
Letzte Änderung: 01. November 2000