Zurück Weiter Kapitel

INDEX()

INDEX(Zeichenfolge,Muster[,Start])

Sucht nach dem ersten Vorkommen des Arguments "Muster" im Argument "Zeichenfolge", beginnend an der angegebenen Startposition. Standardmäßige Startposition ist 1. Der Rückgabewert ist der Index der mit dem Muster übereinstimmenden Zeichenfolge oder 0, wenn das Muster nicht gefunden wurde. Beispiel:

SAY INDEX ("123456", "23") -> 2
SAY INDEX ("123456", "77") -> 0
SAY INDEX ("123456", "23",3) -> 5

INSERT()

INSERT(neu,alt[,Start][,Länge][,Füllzeichen])

Fügt nach der angegebenen Startposition die neue Zeichenfolge in die alte Zeichenfolge ein. Standardmäßige Startposition ist 0. Die neue Zeichenfolge wird je nach Bedarf auf die angegebene Länge abgeschnitten oder aufgefüllt (mit dem angegebenen Füllzeichen oder mit Leerzeichen). Liegt die Startposition hinter dem Ende der alten Zeichenfolge, wird die alte Zeichenfolge rechts aufgefüllt. Beispiel:

SAY INSERT (`ab', `12345') -> ab12345
SAY INSERT (`123', `++',3,5, `-`) -> ++-123--

LASTPOS()

LASTPOS(Muster,Zeichenfolge[,Start])

Sucht rückwärts nach dem ersten Vorkommen des angegebenen Musters im Argument "Zeichenfolge", beginnend an der angegebenen Startposition. Standardmäßige Startposition ist das Ende der Zeichenfolge. Der Rückgabewert ist der Index der mit dem Muster übereinstimmenden Zeichenfolge oder 0, wenn das Muster nicht gefunden wurde. Beispiel:

SAY LASTPOS (`2', `1234') -> 2
SAY LASTPOS (`2', `1234234') -> 5
SAY LASTPOS (`2', `123234',3) -> 2
SAY LASTPOS (`2', `13579') -> 0

LEFT()

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

Diese Funktion gibt die am weitesten links stehende Teilzeichenfolge aus dem angegebenen Argument "Zeichenfolge" mit der angegebenen Länge zurück. Ist die Teilzeichenfolge kürzer als die angeforderte Länge, wird sie rechts mit dem angegebenen Füllzeichen oder mit Leerzeichen aufgefüllt. Beispiel:

SAY LEFT (`123456', 3) -> 123
SAY LEFT (`123456',8, `+') -> 123456++

LENGTH()

LENGTH(Zeichenfolge)

Gibt die Länge der Zeichenfolge zurück. Beispiel:

SAY LENGTH (`drei') -> 4

LINES()

LINES(Datei)

Gibt an, wieviele Zeilen einer logischen Datei in der Warteschlange stehen oder bereits eingegeben wurden, wobei sich die logische Datei auf einen interaktiven Datenstrom beziehen muß. Die Zeilenzahl ergibt sich als Sekundärergebnis des Aufrufs WaitForChar(). Beispiel:

PUSH `eine Zeile'
PUSH `noch eine'
SAY LINES (STDIN) -> 2

MAX()

MAX(Zahl,Zahl[,Zahl, ...])

Gibt den höchsten Wert der angegebenen Argumente zurück. Alle Argumente müssen numerisch sein, und es müssen mindestens zwei Parameter angegeben werden. Beispiel:

SAY MAX (2.1,3,-1) -> 3

MIN()

MIN(Zahl,Zahl[,Zahl, ...])

Gibt den niedrigsten Wert der angegebenen Argumente zurück. Alle Argumente müssen numerisch sein, und es müssen mindestens zwei Parameter angegeben werden. Beispiel:

SAY MIN (2.1,3,-1) -> -1

OPEN()

OPEN(Datei,Dateiname[,'APPEND' | `READ' | `WRITE'])

Öffnet eine externe Datei für die angegebene Operation. Das Zeichenfolgenargument "Datei" definiert den logischen Namen, unter dem auf die Datei verwiesen wird. Der "Dateiname" ist der DOS-Name der Datei und kann sowohl Geräte- als auch Verzeichnisangaben enthalten. Die Funktion gibt einen booleschen Wert zurück, der darüber Aufschluß gibt, ob die Operation erfolgreich ausgeführt wurde. Die Anzahl gleichzeitig geöffneter Dateien ist theoretisch unbegrenzt. Bei Verlassen des Programms werden alle geöffneten Dateien automatisch geschlossen (siehe auch CLOSE(), READ() und WRITE()). Beispiel:

SAY OPEN (`MeinCon', "CON:160/50/320/100/MeinCon/cds') -> 1
SAY OPEN (`Ausgabe', `ram:temp', `W') -> 1

OVERLAY()

OVERLAY(neu,alt[,Start][,Länge][,Füllzeichen])

Überlagert die alte Zeichenfolge ab der angegebenen Startposition mit der neuen Zeichenfolge. Die Startposition muß ein positiver Wert sein. Standardmäßige Startposition ist 1. Die neue Zeichenfolge wird bei Bedarf abgeschnitten oder mit dem angegebenen Füllzeichen oder mit Leerzeichen bis zur angegebenen Länge aufgefüllt. Liegt die Startposition hinter dem Ende der alten Zeichenfolge, wird die alte Zeichenfolge rechts aufgefüllt. Beispiel:

SAY OVERLAY (`bb', `abcd') -> bbcd
SAY OVERLAY (`4', `123',5,5, `-`) -> 123-4----

POS()

POS(Muster,Zeichenfolge[,Start])

Sucht nach dem ersten Vorkommen des Arguments "Muster" im Argument "Zeichenfolge", beginnend an der im Argument "Start" angegebenen Position. Standardmäßige Startposition ist 1. Der Rückgabewert ist der Index der mit dem Muster übereinstimmenden Zeichenfolge oder 0, wenn das Muster nicht gefunden wurde. Beispiel:

SAY POS (`23', `123234') -> 2
SAY POS (`77', `123234') -> 0
SAY POS (`23', `123234', 3) -> 4

PRAGMA()

PRAGMA(Option[,Wert])

Diese Funktion ermöglicht einem Programm die Änderung verschiedener Attribute, die sich auf die Systemumgebung beziehen, in der das Programm ausgeführt wird. Das Argument "Option" ist ein Schlüsselwort, das ein Umgebungsattribut angibt. Das Argument "Wert" bezeichnet den neu zu setzenden Attributwert. Der von der Funktion zurückgegebene Wert hängt vom gewählten Attribut ab. Einige Attribute geben den zuvor gültigen Wert zurück, andere lediglich einen booleschen Wert, der über Erfolg oder Scheitern der Operation Auskunft gibt.

Die zur Zeit definierten Optionsschlüsselwörter sind:

DIRECTORY

Gibt ein neues aktuelles Verzeichnis an. Das aktuelle Verzeichnis gilt als Bezug für Dateinamen, die keine explizite Geräteangabe enthalten. Rückgabewert ist der Name des alten Verzeichnisses. PRAGMA("D") entspricht PRAGMA(`D',""). Damit wird der Pfadname des aktuellen Verzeichnisses zurückgegeben, ohne das Verzeichnis zu wechseln.

PRIORITY

Gibt eine neue Task-Priorität an. Der Prioritätswert muß eine ganze Zahl im Bereich von - 128 bis 127 sein, in der Praxis ist dieser Bereich allerdings wesentlich enger gefaßt. ARexx-Programme sollten in keinem Fall eine höhere Priorität erhalten als der residente Prozeß, der zur Zeit mit Priorität 4 ausgeführt wird. Der Rückgabewert ist die zuvor gültige Prioritätsstufe.

ID

Gibt die Task-ID (die Adresse des Task-Blocks) in Form einer hexadezimalen 8-Hexziffern-Zeichenfolge zurück. Die Task-ID ist eine eindeutige Kennung für den jeweiligen ARexx-Aufruf und kann verwendet werden, um aus diesem einen eindeutigen (Datei)Namen zu generieren.

STACK

Gibt eine neue Stackgröße für das aktuelle ARexx-Programm an. Wenn eine neue Stackgröße festgelegt wird, wird der alte Wert zurückgegeben.

Die zur Zeit implementierten Optionen sind:

PRAGMA(`W',{`NULL'|'WROKBENCH'})

Steuert das Feld WindowPtr der Task. Die Einstellung auf `NULL' unterdrückt alle Dialogfenster, die ansonsten durch einen DOS-Aufruf generiert werden könnten.

PRAGMA(`*'[,Name])

Definiert den angegebenen logischen Namen als aktuellen Konsolen-Handler ("*"). Damit kann der Benutzer zwei Datenströme innerhalb eines Fensters öffnen. Wird der Name weggelassen, erhält der Konsolen-Handler den Namen des Klientenprozesses.

SAY PRAGMA (`D', `DF0:C') -> Extras
SAY PRAGMA (`D', `DF1:C') -> Workbench:C
SAY PRAGMA (`PRIORITY', -5) -> 0
SAY PRAGMA (`ID') -> 00221ABC
CALL PRAGMA `*',STDOUT
SAY PRAGMA ("STACK",8092) -> 4000

Hoch Zurück Weiter Kapitel