Ein REXX Programm kann mit jedem beliebigen Text-Editor erstellt werden. In der ersten Zeile muss immer ein Kommentar /* ... */ stehen, damit die OS/2 Shell erkennt, dass es sich um ein REXX Skript handelt. REXX kennt 23 Instruktionen und einen Datentyp, den String. Variablen sind Typenlos und der Inhalt einer Variable kann sich im Laufe des Programms bzw. bei der Programmausführung beliebig ändern. REXX kennt keine Arrays, dafür können Variablen eine oder mehrere, durch einen "." getrennte Endungen haben mit denen man sich Ein- bzw. Mehrdimensionale dynamische Hashtables mit der gleichen Funktion eines Arrays erzeugen kann. Ich möchte hier einen kurzen Auszug aus dem Grund-Wortschatz von REXX Funktionen geben:
- IF ... THEN ... ELSE
Die Anweisung prüft, ob die Bedingung die hinter IF steht wahr ist. Ist dies der Fall, wird die Anweisung ausgeführt, die hinter THEN steht. Ist die Bedingung falsch, wird die Anweisung ausgeführt, die hinter ELSE steht. - SELECT WHEN ... THEN ... WHEN ... THEN ... OTHERWISE ... END
Die Anweisung SELECT fasst mehrere Bedingung zusammen. Jede Bedingung wird durch eine WHEN geprüft. Ist diese Bedingung wahr wird die hinter den THEN stehende Anweisung ausgeführt. Es ist möglich, dass mehrere Bedingungen wahr sind. In diesem Fall werden deren Anweisung ebenfalls ausgeführt. In dem Fall, dass keine Bedingung wahr ist, wird die Anweisung hinter OTHERWISE ausgeführt. - DO (FOREEVER, UNTIL, WHILE, X=Y TO Z) ... LEAVE ... END
Die Anweisung DO kann alleine und in Kombination mit den Bedingungen die in Klammern angeführt sind angewendet werden.
DO FOREEVER ist eine Endlosschleife die unendlich durchlaufen wird.
DO UNTIL ist eine Schleife, die solange durchlaufen wird bis die Bedingung hinter UNTIL erfüllt/wahr ist.
DO WHILE ist eine Schleife die solange durchlaufen wird die die Bedingung hinter WHILE nicht mehr erfüllt/wahr ist.
DO X=Y TO Z ist die klassische FOR ... NEXT Schleife. X bekommt einen Startwert Y und iteriert zu Z. Hat X den Wert von Z erreicht wird die Schleife verlassen.
Die Anweisung LEAVE kann innerhalb der DO-Schleife aufgerufen werden. Der Aufruf führt dazu, dass die DO Schleife verlassen wird. - ARG
Diese Anweisung liest ein oder mehrere Argumenten ein, die zusammen mit dem REXX Programmaufruf eingegeben wurden. - PARSE
Liest einen oder mehrere Strings von der Tastatur ein und ordnet diese Variablen zu. - SAY "..." "..."
Gibt einen oder mehre Strings oder Ausdrücke aus. - CALL
Mit CALL kann eine REXX Sub-Routine aufgerufen werden. Der Name der Sub-Routine definiert sich aus dem Namen des LABELS das unmittelbar über dem Funktionsaufruf von PROCEDURE steht. Mit dem Funktionsaufruf können optional auch eine Reihe von Argumenten mitgegeben werden. - PROCEDURE ... EXPOSE ... ARG ... RETURN
Die Funktion PROCEDURE kann direkt hinter einem definierten LABEL angegeben werden. Innerhalb dieser Sub-Routine können neue Variablen definiert werden, die nur in dieser Routine ihre Gültigkeit haben. Der Routine können wie einem REXX Programm Argumente (ARG) übergeben werden, mit die die Routine arbeiten kann. Mit der Anweisung RETURN wird die Sub-Routine wieder verlassen. Mit EXPOSE kann man externe Variablen definieren die innerhalb der Sub-Routine modifiziert werden können. - SYMBOL
Prüft ab eine Symbol oder Variable eine gültige Zuordnung bzw. Definition besitzt. Die Funktion gibt BAD, VAR oder LIT zurück. Mit dieser Funktion kann man z.B. überprüfen, ob eine Variable schon eine gültige Initialisierung besitzt. Eine uninitialisierte Variable gibt immer ihren eigenen Namen als Inhalt zurück. - EXIT
Verlässt das laufende Programm.
[UPDATE] Und dann gibt es noch DrDialog den man bei Hobbes und OS2 Site herunterladen kann. Mit dieser REXX-Entwicklungsumgebung lassen sich ebenfall GUI-Anwendungen unter OS/2 Warp erstellen. Ein ausführliche 14teilige Anleitung und eine Einführung in REXX hat Thomas Klein für den Voice-Newsletter erstellt. Es folgen die Links auf die einzelnen Teile:
- Teil 1 - Hintergründe, Quellen, Installation und einleitende Beispiele
- Teil 2 - Einführung in die ereignisgesteuerte Programmierung
- Teil 3 - Die erste Anwendung
- Teil 4 - GUI Grundbestandteile
- Teil 5 - Das Array- und Group-Tool
- Teil 6 - Das Container-Control
- Teil 7 - Contrainer mit Style
- Teil 8 - Einführung in REXX - Hello World
- Teil 9 - Einführung in REXX - Bedingte Programmverzweigung
- Teil 10 - Einführung in REXX - Schleifen
- Teil 11 - Einführung in REXX - Strings
- Teil 12 - Einführung in REXX - Funktionen
- Teil 13 - Eine kurze (Wieder-)Einführung
- Teil 14 - Neue Controls zu DrDialog hinzufügen
2 Kommentare:
Hi,
hinsichtlich GUI-Rexx für OS/2 und ecomstation hätte ich noch ein paar Links, vielleicht interessiert Euch das eine oder andere (falls noch nicht bekannt?)
- DrDialog (bei Hobbes z.B.)
IBM-EWS (freeware) zur Erstellung von nativen GUI-Rexx Programmen (als EXE) mit integrierter ENtwicklungsumgebung. Etwas in die Jahre gekommen aber eine astreine Rapid-Prototyping Umgebung für schnelle udn hübsche Lösungen
- Artikelserie im VOICE Newsletter zu DrDialog, hat mehr als 10 Teile/Ausgaben überdauert und beschreibt so ziemlich alle controls (Teil 1: http://www.os2voice.org/VNL/past_issues/VNL0902H/vnewsf6.htm)
- es gibt eine (mittlerweile etwas inaktive aber noch lebende) Yahoo group zum Thema Gui-Rexx unter http://groups.yahoo.com/group/GuiObjectRexx/
Grüße
(und vielen Dank für Eure coole Seite und das Durchhaltevermögen!)
Thomas
Vielen Dank für den Tipp!
Kommentar veröffentlichen