Nächste Seite: Speicherung der Zeichenketten: Aufwärts: Zeichenketten Vorherige Seite: Zeichenketten

#### Das Abschlusszeichen `0C`:

Zeichenketten werden in in Variablen des Typs `ARRAY[0..n] OF CHAR` abgelegt. Die darin abgelegte Zeichenkette darf bis Zeichen umfassen. Ist sie kürzer als , dann wird sie mit einem `0C` Zeichen abgeschlossen. Ist die Zeichenkette jedoch genau Zeichen lang, so ist sie nicht mit einem `0C` Zeichen abgeschlossen. Die Amiga-Prozeduren erwarten jedoch, dass jede Zeichenkette mit einem Nullbyte endet. Der Programmierer ist also dafür verantwortlich, die Zeichenketten lang genug zu deklarieren!

Zeichenketten werden meist als Offene Feldparameter (``Open Arrays``) an Prozeduren übergeben. Diese besitzen eine Besonderheit: Offene Feldparameter mit der Komponentengrösse 1 -- dies ist bei Zeichenketten der Fall -- enden nun garantiert immer mit einem Nullbyte, wenn sie von der Prozedur auf den Stack kopiert werden. Sie werden genau dann auf den Stack kopiert, wenn sie Werte-Parameter sind und nicht die Option `(*$ CopyDyn:=FALSE *)` angegeben wurde.

Der Nutzen liegt darin, dass derartige Parameter direkt an das Betriebssystem übergeben werden können.

Im -System kann es nur nach einer Zuweisung an eine Variable oder beim direkten Manipulieren einzelner Feldelemente des `ARRAY`s vorkommen, dass eine Zeichenkette nicht mit `0C` abgeschlossen ist.

Alle konstanten Zeichenketten werden vom Compiler automatisch mit einem Nullbyte abgeschlossen und auf einer geraden Adresse im Konstantenbereich abgelegt.

Bei der Übergabe konstanter Zeichenketten an einen offenen Feldparameter wird das abschliessende Nullbyte mitkopiert, sodass auch diese Zeichenketten ,,sicher`` sind. Der Wert von `HIGH` ist also gleich `SIZE` oder `String.Length`, jedoch mindestens 1. Hier heisst es aufzupassen: dies ist eine Neuerung gegenüber der Compiler-Version 3.3!.

Ebenso schliessen alle Prozeduren des Moduls `String` -- mit Ausnahme der Prozeduren, welche die Länge nicht verändern -- und `Terminal.ReadLn` nach der Verarbeitung die Zeichenkette mit einem Nullbyte ab.

Nächste Seite: Speicherung der Zeichenketten: Aufwärts: Zeichenketten Vorherige Seite: Zeichenketten