Zurück Weiter Kapitel

Vorsicht:

Jeder beliebige Speicherbereich kann überschrieben werden was eventuell einen Systemabsturz zur Folge hat. Taskwechsel werden während des Kopiervorgangs unterbunden, so daß die Systemleistung beim Kopieren langer Zeichenfolgen möglicherweise sinkt.

Beispiel:

SAY STORAGE () -> ` 248400
altinhalt = STORAGE (`0004 0000'x, `Die Antwort')
CALL STORAGE `0004 0000'x,,32,'+'

STRIP()

STRIP(Zeichenfolge[,{`B' | `L' | `T'}][,Füllzeichen])

Wird keines der wahlfrei zu verwendenden Argumente angegeben, entfernt die Funktion sowohl voran- als auch nachgestellte Leerzeichen aus dem Argument "Zeichenfolge". Das zweite Argument gibt an, ob nachgestellte (T - trailing), vorangestellte (L - leading) oder beide Arten von Leerzeichen (B - both) entfernt werden sollen. Das wahlfrei anzugebende "Füllzeichen" bezeichnet das zu entfernende Zeichen. Beispiel:

SAY STRIP (` Wie bitte? `) -> Wie bitte?
SAY STRIP (` Wie bitte? `, `L') -> Wie bitte?
SAY STRIP (`++123+++', `B', `+') -> 123

SUBSTR()

SUBSTR(Zeichenfolge,Start[,Länge][,Füllzeichen])

Gibt eine Teilzeichenfolge des Arguments "Zeichenfolge" zurück, die an der angegebenen Startposition beginnt und die angegebene Länge hat. Die Startposition muß eine positive Zahl sein. Als Standardlänge gilt der komplette Rest der Zeichenfolge. Ist die Teilzeichenfolge kürzer als die angeforderte Länge, wird sie rechts mit Leerzeichen oder dem angegebenen Füllzeichen aufgefüllt. Beispiel:

SAY SUBSTR (`123456',4,2) -> 45
SAY SUBSTR (`meinname',5,6, `=') -> name==

SUBWORD()

SUBWORD(Zeichenfolge,n[,Länge])

Gibt eine Teilzeichenfolge des Arguments "Zeichenfolge" zurück, die mit dem n-ten Wort beginnt und deren Wortanzahl im Argument "Länge" definiert ist. Als Standardlänge gilt die restliche Länge der Zeichenfolge. Die zurückgegebene Zeichenfolge hat in keinem Fall voran- oder nachgestellte Leerzeichen. Beispiel:

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

SYMBOL()

SYMBOL(Name)

Überprüft, ob das Argument "Name" ein gültiges ARexx-Symbol ist. Ist dies nicht der Fall, gibt die Funktion die Zeichenfolge BAD zurück. Ist das Symbol nicht initialisiert, lautet die zurückgegebene Zeichenfolge LIT. Ist dem Symbol ein Wert zugeordnet, wird VAR zurückgegeben. Beispiel:

SAY SYMBOL (`J') -> VAR
SAY SYMBOL (`x') -> LIT
SAY SYMBOL (`++') -> BAD

TIME()

TIME(Option)

Gibt die aktuelle Systemzeit zurück oder steuert die interne Laufzeitmessung. Gültige Optionsschlüsselwörter sind:

CIVIL

Aktuelle Zeit im 12-Stunden-Format (a.m./p.m.) Stunde/Minuten

ELAPSED

Seit dem Programmstart vergangene Zeit in Sekunden

HOURS

Aktuelle Zeit in Stunden seit Mitternacht

MINUTES

Aktuelle Zeit in Minuten seit Mitternacht

NORMAL

Aktuelle Zeit im 24-Stunden-Format (Stunden/Minuten/Sekunden)

RESET

Setzt die Laufzeitmessung zurück

SECONDS

Aktuelle Zeit in Sekunden seit Mitternacht

Wird keine Option angegeben, gibt die Funktion die aktuelle Systemzeit im Format HH:MM:SS zurück. Beispiel:

/*Angenommen, es ist 1:02 Uhr nachts ...*/
SAY TIME (`C') -> 1:02 AM
SAY TIME (`Hours') -> 1
SAY TIME (`M') -> 62
SAY TIME (`N') -> 01:02:54
SAY TIME (`S') -> 3720
call TIME (`R') /*Laufzeitmessung zurücksetzen*/
SAY TIME (`E') -> .020
SAY TIME () -> 01:02:00

TRACE()

TRACE(Option)

Stellt den Ablaufverfolgungsmodus (siehe Kapitel 6.1) entsprechend dem Schlüsselwort "Option" ein. Dafür muß eine der zulässigen alphabetischen oder Präfixoptionen verwendet werden. Die Funktion TRACE() ändert den Ablaufverfolgungsmodus auch während einer interaktiven Ablaufverfolgung. In diesem Fall werden TRACE-Befehle im Quellprogramm ignoriert. Rückgabewert ist der vor dem Funktionsaufruf aktive Modus. Dies ermöglicht die spätere Wiederherstellung des vorherigen Ablaufverfolgungsmodus. Beispiel:

/*Angenommen, der Ablaufverfolgungsmodus ist ?ALL*/
SAY TRACE (`Results') -> ?A

TRANSLATE()

TRANSLATE(Zeichenfolge[,Ausg.][,Eing.][,Füllz.])

Diese Funktion erstellt eine Umsetztabelle und ersetzt auf der Basis dieser Tabelle ausgewählte Zeichen aus dem Argument "Zeichenfolge". Wird nur das Argument "Zeichenfolge" angegeben, so wird es in Großbuchstaben umgesetzt. Bei Angabe einer Eingabetabelle wird die Umsetztabelle verändert, so daß Zeichen im Argument "Zeichenfolge", die in der Eingabetabelle vorkommen, durch die entsprechenden Zeichen in der Ausgabetabelle ersetzt werden. Zeichen, die über das Ende der Ausgabetabelle hinausgehen, werden durch das angegebene Füllzeichen oder durch Leerzeichen ersetzt. Die resultierende Zeichenfolge ist stets genau so lang wie die ursprüngliche Zeichenfolge. Die Ein- und Ausgabetabellen können beliebig lang sein. Beispiel:

SAY TRANSLATE ("abcde", "123", "cbade", "+") -> 321++
SAY TRANSLATE ("Klein") -> KLEIN
SAY TRANSLATE ("0110", "10", "01") -> 1001

TRIM()

TRIM(Zeichenfolge)

Entfernt nachgestellte Leerzeichen aus dem Argument "Zeichenfolge". Beispiel:

SAY length (TRIM(` abc `)) -> 4

TRUNC()

TRUNC(Zahl][,Stellen])

Gibt den ganzzahligen Teil des Arguments "Zahl", gefolgt von der angegebenen Anzahl Dezimalstellen zurück. Standardwert für die Dezimalstellen ist 0. Die Zahl wird bei Bedarf mit Nullen aufgefüllt. Beispiel:

SAY TRUNC (123.456) -> 123
SAY TRUNC (123.456,4) -> 123.4560

UPPER()

UPPER(Zeichenfolge)

Setzt die Zeichenfolge in Großbuchstaben um. Diese Funktion hat den gleichen Effekt wie die Funktion TRANSLATE(Zeichenfolge), nur ist sie bei kurzen Zeichenfolgen etwas schneller. Beispiel:

SAY UPPER(`Ein schöner Tag') -> EIN SCHÖNER TAG

VALUE()

VALUE(Name)

Gibt den Wert des Symbols zurück, das im Argument "Name" dargestellt ist. Beispiel:

/*Angenommen, J hat den Wert 12*/
SAY VALUE(`j') -> 12

VERIFY()

VERIFY(Zeichenfolge,Liste[,MATCH'])

Gibt die Indexposition des ersten Zeichens im Argument "Zeichenfolge" zurück, das nicht im Argument "Liste" enthalten ist, oder 0, wenn alle Zeichen in der Liste stehen. Wird das Schlüsselwort MATCH angegeben, gibt die Funktion die Indexnummer des ersten Zeichens im Argument "Zeichenfolge" zurück, das im Argument "Liste" enthalten ist, oder 0, wenn keines der Zeichen in der Liste steht. Beispiel:

SAY VERIFY (`123456', `0123456789') -> 0
SAY VERIFY (`123a56', `0123456789') -> 4
SAY VERIFY (`123a45', `abcdefghij', `m') -> 4

Hoch Zurück Weiter Kapitel