Zurück Weiter Kapitel

WORD()

WORD(Zeichenfolge,n)

Gibt das n-te Wort aus dem Argument "Zeichenfolge" zurück oder eine leere Zeichenfolge, wenn die Zeichenfolge weniger als n Wörter hat. Beispiel:

SAY WORD (`Nun ist es Zeit `,2) -> ist

WORDINDEX()

WORDINDEX(Zeichenfolge,n)

Gibt die Startposition des n-ten Worts im Argument "Zeichenfolge" zurück, oder 0, wenn die Zeichenfolge weniger als n Wörter hat. Beispiel:

SAY WORDINDEX (`Nun ist es Zeit `,3) -> 9

WORDLENGTH()

WORDLENGTH(Zeichenfolge,n)

Gibt die Länge des n-ten Worts im Argument "Zeichenfolge" zurück. Beispiel:

SAY WORDLENGTH (`vier fünf sechs',3) -> 5

WORDS()

WORDS(Zeichenfolge)

Gibt die Anzahl der Wörter im Argument "Zeichenfolge" zurück. Beispiel:

SAY WORDS (`Wie geht' `s Dir?") -> 3

WRITECH()

WRITECH(Datei,Zeichenfolge)

Schreibt das Argument "Zeichenfolge" in die angegebene logische Datei. Der Rückgabewert ist die Anzahl der geschriebenen Zeichen. Beispiel:

SAY WRITECH (`Ausgabe', `Test') -> 4

WRITELN()

WRITELN(Datei,Zeichenfolge)

Schreibt das Argument "Zeichenfolge" in die angegebene logische Datei und fügt ein Zeichen für Zeilenvorschub an. Der Rückgabewert ist die Anzahl der geschriebenen Zeichen. Beispiel:

SAY WRITELN (`Ausgabe', `Test') -> 5

X2C()

X2C(Zeichenfolge)

Wandelt eine aus Hexadezimalziffern bestehende Zeichenfolge in die (gepackte) Zeilendarstellung um. Leerzeichen sind im Argument "Zeichenfolge" an Bytegrenzen zulässig. Beispiel:

SAY X2C (`12ab') -> `12ab'x
SAY X2C ('12 ab') -> `12ab'x
SAY X2C(61) -> a

X2D()

X2D(Hex-Zeichenfolge)

Wandelt eine Hexadezimalzahl in eine Dezimalzahl um. Beispiel:

SAY X2D (`1f') -> 31

XRANGE()

XRANGE([Start][,Ende])

Generiert eine Zeichenfolge, die aus allen Zeichen besteht, deren Codes numerisch zwischen den angegebenen Start- und Endzeichen liegen. Standardzeichen sind `00'x für Start und `FF'x für Ende. Nur die jeweils ersten Zeichen der Argumente "Start" und "Ende" sind von Bedeutung. Beispiel:

SAY XRANGE() -> `00010203 . . . FDFEFF'x
SAY XRANGE (`a', `f') -> `abcdef'
SAY XRANGE (, `0A'x) -> `00010203045060708090A'x

Programmbeispiel

Das folgende Beispielprogramm illustriert viele der integrierten Funktionen, mit denen Zeichenfolgen manipuliert werden.

Programm 13. Changestrings.rexx

/*Dieses ARexx-Programm zeigt die Wirkung integrierter Funktionen, die Zeichenfolgen manipulieren. Die Funktionen lassen sich in zwei Gruppen einteilen: solche, die einzelne Zeichen verändern, und solche, die ganze Zeichenfolgen verändern.*/

teststringl = " every good boy does fine "

/*Die erste Gruppe bilden die Funktionen STRIP (), COMPRES (), SPACE (), TRIM (), TRANSLATE (), DELSTR (), DELWORD (), INSERT (), OVERLAY () und REVERSE ().*/

/*STRIP () entfernt lediglich voran- und nachgestellte Leerzeichen.*/

/*Drucken Sie zu Vergleichszwecken die Originalzeichenfolge aus. Die Zeichenfolge wird mit einem Punkt abgeschlossen, damit Sie sehen, was mit den Leerzeichen am Ende der Zeichenfolge geschieht.*/

SAY " every good boy does fine "

/*Die gleiche Zeichenfolge ohne voran- und nachgestellte Leerzeichen*/

SAY STRIP (" every good boy does fine ")"."

/*Gescheiterter Versuch, die voran- und nachgestellten "e"'s zu entfernen*/

SAY STRIP (" every good boy does fine ", ,"e")"."

/*Die "e"'s waren durch die noch immer vorhandenen, voran- und nachgestellten Leerzeichen geschützt. Durch Löschen dieser Leerzeichen werden die """"s den Auswirkungen der Funktion STRIP () ausgesetzt*/

SAY STRIP ("every good boy does fine", , "e")"."

/*Nun werden die "e"'s und die Leerzeichen aus der Originalzeichenfolge gelöscht*/

SAY STRIP (" every good boy does fine ",,"e")"."

/*Nun wird die weiter oben definierte Variable "teststring1" verwendet. Entfernung nur der nachgestellten Leerzeichen aus der Testzeichenfolge.*/

SAY STRIP (teststring1, T)"."

/*Entfernung der nachgestellten Leerzeichen und des "e"*/

SAY STRIP (teststring1,T," e")"."

/*Compress() entfernt Zeichen überall innerhalb einer Zeichenfolge. Hier werden alle Leerzeichen aus der Testzeichenfolge teststring1 gelöscht*/

SAY COMPRESS (teststring1)

CALL TIME (`r')

SAY TIME (`Civil') /*Uhrzeit HH:MM{AM | PM}*/

SAY TIME (`h') /*Stunden seit Mitternacht*/

SAY TIME (`m') /*Minuten seit Mitternacht*/

SAY TIME (`s') /*Sekunden seit Mitternacht*/

SAY TIME (`e') /*Vergangene Zeit seit dem Programmstart*/

/*Funktion: TRACE Verwendung: TRACE ( [Option] )*/

SAY TRACE ()

SAY TRACE (TRACE () ) /*Unverändert lassen*/

/*Funktion: TRANSLATE

Verwendung:

TRANSLATE (Zeich.folge[,Ausgabe] [,Eingabe] [,Füllz.])*/

SAY TRANSLATE (`aBCdef') /*Umwandeln in Großbuchstaben*/

SAY TRANSLATE (`abcdef', `1234')

SAY TRANSLATE (`654321'. `abcdef', `123456')

SAY TRANSLATE (`abcdef', `123', `abcdef', `+')

/*Funktion: TRIM Verwendung: TRIM (Zeichenfolge)*/

SAY TRIM (` abc `)

/* Funktion: TRUNC Verwendung:

TRUNC (Zahl [,Stellen])*/

SAY TRUNC (123.456)

SAY TRUNC (134566.123,2) `DM'

/*Funktion: UPPER Verwendung: UPPER (Zeichenfolge)*/

SAY UPPER (`aBCdef12äöÜ')

/*Funktion: VALUE Verwendung: VALUE (Name)*/

abc = `Mein Name'

SAY VALUE (`abc')

/*Funktion: VERIFY Verwendung:

VERIFY (Zeichenfolge,Liste[,'M'])*/

SAY VERIFY (`123a45', `0123456789')

SAY VERIFY (`abc3de', `012456789', `M')

/*Funktion: WORD Verwendung: WORD (Zeichenfolge,n)*/

SAY WORD (`Nun ist es Zeit',3)

/*Funktion: WORDINDEX Verwendung:

WORDINDEX (Zeichenfolge,n)*/

SAY WORDINDEX (`Nun ist es Zeit `,3)

/*Funktion: WORDLENGTH Verwendung:

WORDLENGTH (Zeichenfolge,n)*/

SAY WORDLENGTH (`Nun ist es Zeit `,4)

/*Funktion: WORDS Verwendung: WORDS (Zeichenfolge)*/

SAY WORDS (`Nun ist es Zeit')

/*Funktion: WRITECH Verwendung:

WRITECH (Datei,Zeichenfolge)*/

IF OPEN (`test', `ram:test$$', `W') THEN DO

SAY WRITECH (`test', `Hallo') /*Zeichenfolge schreiben*/

CALL CLOSE `test'

END

/*Funktion: WRITELN Verwendung:

WRITELN (Datei,Zeichenfolge)*/

IF OPEN (`test', `ram:test$$', `W') THEN DO

SAY WRITELN (`test', `Hallo')

/+Zeichenfolge (plus Zeilenvorschubzeichen) schreiben*/

CALL CLOSE `test'

END

/*Funktion: X2C Verwendung: X2C (hexadezimale Zeichenfolge)*/

SAY X2C (`616263') /*Umwandeln in Zeichen (gepackt)*/

/*Funktion: XRANGE Verwendung:

XRANGE ([Start] [,Ende])*/

SAY C2X (xrange(`f0'x))

SAY XRANGE (`a', `g')

EXIT

Die Ausgabe des Testprogramms 13 sieht folgendermaßen aus:

every good boy does fine
every good boy does fine.
every good boy does fine .
very good boy does fin.
very good boy does fin.
every good boy does fine.
every good boy does fin.
Everygoodboydoesfine
1:23PM /*Diese Testergebnisse hängen von der Uhrzeit ab, */
13 /*zu der Sie das Programm aufrufen.*/
803
48199
0.80
N
N
ABCDEF
abcdef
fedcba
123+++
abc
123
134566.12 DM
ABCDEF12
Mein Name
4
0
es
8
4
4
7
8
abc
F0F1F2F3F4F5F6F7F8F9FFAFBFCFDFEFF
ABCDEFG

Hoch Zurück Weiter Kapitel