This is version . It is not the current version, and thus it cannot be edited.
[Back to current version]   [Restore this version]

Zeichenketten (Strings) in volksFORTH#

Hier befinden sich grundlegende Routinen zur Stringverarbeitung. Vor allem wurden auch Worte aufgenommen, die den Umgang mit den von manchen Betriebssystemen geforderten 0-terminated Strings ermöglichen. FORTH hat hier gegenüber C den Nachteil, daß FORTH-Strings standardmäßig mit einem Count-Byte beginnen, das die Länge des Strings enthält. Ein abschließendes Zeichen (z.B. ein Null-Byte) ist daher unnötig. Wenn das Betriebssystem aber in C geschrieben wurde (Atari TOS, MS-DOS), müssen Strings entsprechend umgewandelt werden.

Standardmäßig arbeitet FORTH mit counted Strings, die lediglich durch eine Adresse gekennzeichnet werden. Das Byte an dieser Adresse enthält die Angabe, wie lang die Zeichenkette ist. Auf dieses "count byte" folgt dann die Zeichenkette selbst. Dadurch ist die Läunge eines Standard-Strings in FORTH auf 255 Zeichen begrenzt. Die kürzeste Zeichenkette ist ein String der Länge NULL, für dessen Überprüfung der Befehl NULLSTRING? zur Verfügung steht.

So sieht der String FORTH an der Adresse addr im Speicher unter FORTH aus.

String-Manipulationen#

Hier im Glossar bezeichnet der Stackkommentar ( string -- ) die Adresse eines counted Strings, dagegen ( addr len -- ) die Charakterisierung durch die Anfangsadresse der Zeichenkette und ihre Länge.

Keine Stringvariable? - Benutze:

: String:  Create dup , 0 c, allot DOES> 1+ count ;

Im Dictionary#

0-terminated Strings#

Es gibt noch eine andere Darstellungsform für Strings, die beispielsweise für MS-DOS geeigneter ist. Diese Strings werden zwar ebenfalls durch eine Adresse gekennzeichnet; diese Adresse enthält aber kein count byte. Statt dessen werden diese Zeichenketten mit einem Nullbyte abgeschlossen.

Add new attachment

Only authorized users are allowed to upload new attachments.

List of attachments

Kind Attachment Name Size Version Date Modified Author Change note
png
forth-string.png 12.4 kB 2 08-Aug-2010 15:36 Carsten Strotmann
png
zero-term-string.png 13.2 kB 1 08-Aug-2010 15:46 Carsten Strotmann
« This particular version was published on 08-Aug-2010 15:46 by Carsten Strotmann.