Datentyp: STRING
Wichtig
Bei einer Latin-1-Kodierung ist der für eine STRING
-Variable benötigte Speicherplatz immer 1 Byte pro Zeichen plus ein zusätzliches Byte. Das ergibt beispielsweise 81 Bytes im Falle einer standardmäßigen STRING(80)
-Deklaration.
Bei einer UTF-8-Kodierung kann ein Zeichen bis zu 4 Byte lang sein. Die Länge des Strings gibt aber immer die Anzahl der Bytes an, die für den STRING reserviert werden. Somit gibt es keine 1 : 1 Beziehung mehr zwischen Zeichenanzahl und Stringlänge.
Der Datentyp STRING
wird als Latin-1 oder UTF-8 interpretiert: Wenn die Compile-Option UTF8-Kodierung für STRING aktiviert ist, werden alle Stringliterale im UTF-8-Format interpretiert.
Deklaration:
<varible name> : STRING( <size> ) := ' <text> ';
<varible name> : STRING[ <size> ] := ' <text> ';
Die Speichergröße <size>
und die Initialisierung sind optional.
sVar : STRING(46):= 'This is a string with memory for 46 characters.'; sVar_µ : STRING[10] := 'µ (Mü)'; sVar_ß : STRING[10] := 'Eszett';
Eine Variable des Datentyps STRING
kann eine beliebige Zeichenkette aufnehmen. Die Größenangabe <size>
zur Speicherplatz-Reservierung bei der Deklaration bezieht sich auf die Anzahl an Bytes und steht in runden oder eckigen Klammern. Ist keine Größe angegeben, werden standardmäßig 80 Zeichen reserviert. Wenn eine Variable mit einem Literal initialisiert wird, das zu lang für den Datentyp der Variablen ist, wird das Literal von hinten her entsprechend abgeschnitten.
Die Länge der Strings ist aber nicht grundsätzlich begrenzt. Wenn Sie Stringmanipulationen mit den Funktionen der Bibliothek Standard
ausführen lassen, werden Strings bis zu einer Länge von 255 korrekt verarbeitet. Wenn Sie Stringmanipulationen mit den Funktionen der Bibliothek StringUtils
ausführen lassen, können Sie auch längere Strings (>255 Zeichen) verwenden.
Wenn eine Variable des Datentyps STRING
durch einen Reset der Applikation neu initialisiert wird, wird der nach dem abschließenden Nullzeichen des Initialwerts vorhandene Inhalt des (alten) Strings nicht überschrieben. Dies gilt sowohl für die Initialisierung mit dem Initialisierungswert als auch für die Initialisierung mit dem Standard-Initialisierungswert 0.
Ab Compilerversion 3.5.18.0 haben Sie die Möglichkeit das Kodierungsformat von Strings auszuwählen. Sie haben die Möglichkeit projektweit festzulegen, ob Strings im Latin-1-Format oder im UTF-8-Format interpretiert werden. Aktivieren Sie für die UTF-8-Kodierung die Compile-Option UTF8-Kodierung für STRING .
Für weitere Informationen siehe: Compile-Optionen und UTF-8-Kodierung
Tipp
Bevor Sie das Kodierungsformat umstellen, ist es ratsam, ihren Code auf Regel SA0175 statisch analysieren zu lassen.
Für weitere Informationen siehe: Static Analysis Light
Tipp
Ergänzen Sie die Deklaration einer Variablen um das Pragma {attribute 'monitoring_encoding' := 'UTF8'}
, dann können Sie den Inhalt der Variablen in UTF8-Kodierung monitoren.
Für weitere Informationen siehe: Pragma monitoring_encoding