String
Zuletzt geändert: 12.06.2023 04:22

String (Pascal-Script) #

EULANDA® benutzt bei ANSI-Strings, diese können bis zu 2 Gigabyte lang sein.

Das reservierte Wort string funktioniert wie ein generischer Typbezeichner. Die folgende Zeile deklariert beispielsweise eine Variable namens S, in der ein String gespeichert wird:

var S: string;

Die Standardfunktion Length gibt die Anzahl der Zeichen in einem String zurück. Der Vergleich von Strings wird durch die Wertigkeit der Zeichen an den entsprechenden Positionen der ASCII-Tafel definiert. Bei Vergleichen zwischen Strings von unterschiedlicher Länge wird jedes Zeichen im längeren String, dem kein Zeichen im kürzeren String entspricht, als „größer“ angesehen. So ist beispielsweise ‘AB’ größer als ‘A’. Dies bedeutet, dass ‘AB’ > ‘A’ den Wert True hat. Strings mit der Länge Null enthalten die niedrigsten Werte.

Sie können eine String-Variable wie ein Array indizieren. Wenn S eine String-Variable und i ein Integer-Ausdruck ist, stellt S[i] das i-te Zeichen - oder streng genommen das i-te Byte in S dar. Die Anweisung MyString[2] := ‘A’ weist dem zweiten Zeichen von MyString den Wert A zu. Im folgenden Quelltext wird MyString mit der Standardfunktion UpCase in Großbuchstaben umgewandelt:

var
  I: Integer;
  MyString : String;

begin
  I := Length(MyString);
  while I > 0 do
    begin
      MyString[I] := UpCase(MyString[I]);
      I := I - 1;
    end;
end;

Wenn Sie Strings auf diese Weise indizieren, müssen Sie darauf achten, dass Sie nicht über das Ende des Strings hinausschreiben, da dies zu einem Indexfehler führen würde. Außerdem sollten Sie Indizes für Strings nicht als var-Parameter übergeben, da dies ineffizienten Code ergibt. Sie können einer String-Variablen den Wert einer String-Konstante oder eines anderen Ausdrucks zuweisen, der einen String zurückliefert. Die Länge des Strings ändert sich bei der Zuweisung dynamisch. Hier einige Beispiele:

MyString := 'Hallo Welt';

MyString := 'Hallo ' + 'Welt';
MyString := MyString + '!';
MyString := ' '; { Leerzeichen }
MyString := ''; { Leerstring }