Beiträge durchsuchen

Stringverarbeitung

Überblick

Die wichtigsten String-Funktionen in Delphi:
zum Suchen in Strings:

zum Verarbeiten von Strings:

Sonstige:

Ein paar Vorbemerkungen zu den Funktionen:

Die Funktionen Copy, Delete, Insert, Length und Pos befinden sich in der Unit System, stehen also automatisch zur Verfügung. StringReplace (ab Delphi 5), AnsiUpperCase und AnsiLowerCase befinden sich in der Unit SysUtils. Weitere interessante String-Funktionen(u.a. auch PosEx) sind in der Unit StrUtils zu finden.
Zur Indizierung von Strings ist zu sagen, dass Strings in Delphi – anders als in anderen Programmiersprachen und anders als bei dynamischen Arrays – beginnend mit 1 indiziert werden. Was heißt das aber jetzt? Im Normalfall kann man davon ausgehen, dass in der Informatik mit 0 angefangen wird zu zählen. Delphi-Strings sind das einzige mir bekannte Beispiel bei dem das anders ist:

  s := 'Hallo';
 ShowMessage(s[0]); // existiert nicht --> erzeugt einen Compiler-Fehler
 ShowMessage(s[1]); // gibt 'H' aus.

Diese Sonderstellung der Strings beruht auf der Implementierung von Strings in Delphi 1. Damals wurde in s[0] die Länge des Strings gespeichert, wodurch Strings auf eine maximale Länge von 255 Zeichen beschränkt waren.
Mit der Einführung von Delphi 2 wurde diese Form des Strings durch den Ansistring (oder kurz String) ersetzt. Die alte Implementierung steht mittlerweile unter dem Namen Shortstring zur Verfügung. Ein Beispiel für Shortstrings:

var
 s: string[50]; // der Wert in eckigen Klammern legt die maximale Länge fest
begin
 s := 'Hallo. Ich bin ein ShortString. ';
 ShowMessage(IntToStr(Integer(s[0]))); // Länge auf Integer casten und in String umwandeln
 // gibt die Länge des ShortStrings aus
 ...

Im Folgenden werden ausschließlich (Ansi)strings zum Einsatz kommen. Es lassen sich jedoch sämtliche Beispiele auch für Shortstrings verwenden.