Object Pascal im Detail - Datentypen www.delphi-treff.de
53
4.2. Datentypen
Jeder  Variablen  liegt  in  Object  Pascal  ein  Typ  zugrunde.  Es  gibt  verschiedene  Arten  von  Datentypen.  Die meisten  einfachen  Datentypen  sind  bereits  im  Kapitel  über  Variablen  beschrieben  worden.  Doch  es  gibt
weitere. String  ist  der  Datentyp,  der  Texte  aufnimmt.  Allerdings  gibt  es  nicht  nur  einen  String-Typ,  sondern
verschiedene.
4.2.1. Strings
4.2.1.1. Unterschiedliche String-Typen
In Delphi gibt es verschiedene Möglichkeiten, Strings zu deklarieren:   String
  ShortString   AnsiString
  UnicodeString   UTF8String
  WideString
4.2.1.2. String
Der Datentyp „String  ist kein eigener Datentyp, sondern nur ein Alias, dessen wirklicher Typ sich abhängig von
der Delphi-Version unterscheidet. Sofern man keine besonderen Gründe hat, wird empfohlen, immer „“t i g
als Datentyp für Texte zu verwenden. Der Alias steht für:   ShortString in Delphi 1
  AnsiString Delphi 2 bis 2007   UnicodeString seit Delphi 2009
var text: String; Die  älteren  String-Typen  ShortString,  AnsiString  stehen  nach  wie  vor  auch  in  neuen  Delphi-Versionen  zur
Verfügung.  Nur  reicht  für  ihre  Verwendung  nicht  mehr  die  Angabe „String ,  sondern  es  muss  konkret  z.B.
„ShortString  angegeben werden.
4.2.1.3. ShortString
Verwendet  man  unter  Delphi  1  den  Typ „String ,  meinte  man  den  Datentyp  „ShortString .  Ein  ShortString
besteht  maximal  aus  255  Zeichen,  für  die  statisch  Arbeitsspeicher  reserviert  wird.  Das  bedeutet,  dass  auch
Object Pascal im Detail - Datentypen www.delphi-treff.de
54
wenn nur 1 Zeichen in ShortString enthalten ist, trotzdem Speicher für 255 Zeichen belegt wird. Im ersten Byte Index  0  des  Strings  befindet  sich  die  Längenangabe.  Somit  liegt  das  erste  Zeichen  an  Position  1.  Die  Länge
eines ShortStrings kann man auch selbst angeben: var text: String[10];
Wird keine Länge vorgegeben, wird 255 verwendet.
4.2.1.4. AnsiString
Mit  der  Umstellung  auf  32  Bit  mit  Delphi  2  fiel  die  255-Zeichen-Grenze.  Strings  können nun  bis  zu  2  GB  groß werden.  Im  Gegensatz  zum  ShortString  wird  deshalb  nun  nicht  mehr  die  komplette  Größe  im  Speicher
reserviert,  sondern  nur  so  viel,  wie  momentan  benötigt  wird.  Ist  der  String  leer,  so  verwendet  er  keinen Speicher.  Für  jedes  Zeichen  des  Strings  steht  1  Byte  zur  Verfügung,  es  kann  also  nur  der  ANSI-Zeichensatz
verwendet werden. Der AnsiString ist ebenfalls 1-basiert, um zum ShortString kompatibel zu bleiben. Will man also  eine  Schleife  über  alle  Zeichen  des  Strings  implementieren,  ist  zu  beachten,  dass  das  erste  Zeichen  sich
nicht an Position 0, sondern 1 befindet. var text: AnsiString;
4.2.1.5. UnicodeString