Über REXX und ZOC |
Die von ZOC verwendete Skriptsprache REXX hat eine lange Tradition, speziell in der IBM-Welt. Die Sprache ist einfach aber vielseitig und bietet alle Elemente einer Programmiersprache, notwendig sind um Programme von einfacher bis mittlerer Komplexität zu schreiben (Variablen, Schleifen, Dateibehandlung, Prozeduren, usw.). Es gibt sogar eine objektorientierte Variante von REXX.
Die Programmierbarkeit von ZOC entsteht durch einer Kombination aus der Sprache REXX und ZOC-spezifischen Erweiterungen. Da REXX selbst bereits eine etablierte Skriptsprache ist, nutzt ZOC diese als Fundament und baut darauf mit eigenen Funktionen zur Terminalemulation und Kommunikation auf. Diese Erweiterungen heben sich vom normalen Sprachumfang ab, indem Sie immer mit dem Namen Zoc beginnen, z.B. ZocConnect.
Hinweis: Die in ZOC verwendete REXX Interpreter ist REGINA REXX
(https://regina-rexx.sourceforge.net/).
Falls Sie eine andere REXX-Implementierung bevorzugen (z.B. OOREXX), können
Sie diese unter
Optionen→Programmeinstellungen→Spezielle Dateien→Alternative REXX-DLL
konfigurieren.
ZOC REXX lernen |
Nachfolgend finden Sie einen groben Einblick in die REXX Programmierung. Nachdem Sie diesen Überblick gelesen haben, sollten Sie einen Blick auf die Themen REXX Sprachelemente und ZOC-REXX Befehle werfen. Diese decken den notwendigen Sprachumfang für den größten Teil aller anfallenden Aufgaben ab.
Abgesehen davon befindet sich im Ordner Eigene Dateien→ZOC8 Dateien→Rexx das Archiv ZocScriptingSamples.zip mit deutschsprachigen Schritt-für-Schritt Beispielen. Darüberhinaus gibt es weitere REXX Online Dokumentation auf der EmTec-Webseite.
Sollten Sie REXX auf einem komplexeren Level verwenden wollen, sollten Sie den Text ZOC REXX Reference (PDF, engl) ansehen, den Sie auch im o.g. Ordner oder auf der Webseite finden.
Ein erstes Beispiel |
Die ZOC-REXX Versionen des berühmten Hello-World Programms sehen so aus:
Grundsätzliches |
Alle REXX-Programme beginnen in der Regel mit einem Kommentar. REXX sieht jeden Text, der zwischen /* und */ steht, also Kommentar an. Folglich sollte die erste Zeile eines REXX-Programms in etwa so aussehen: /* REXX */. Zusätzlich zu dieser Form von Kommentaren kennt REXX noch Kommentare bis zum Ende der Zeile, die durch -- eingeleitet werden (siehe die Beispiele oben).
REXX kennt Standard- und Erweiterungsbefehle. Beispiele für REXX Standardbefehle sind SAY, IF, DO, END. ZOC-Erweiterungsbefehle sind zum Beispiel ZocConnect, ZocSend, ZocDisconnect.
Der Übersichtlichkeit halber werden die nativen REXX Sprachelemente in Großschrift verwendet, z.B. CALL, IF, SAY. ZOC-Erweiterungen werden dagegen in CamelCase angegeben, z.B. ZocAsk, ZocWrite. Namen die im Programm vom Benutzer selbst vergeben werden (z.B. Variablen, Prozeduren, etc.), stehen in Kleinbuchstaben, z.B. ergebnis= 10*eingabe.
Wie werden die verschiedenen Befehlstypen angesprochen |
Standardbefehle | |
Standardbefehle werden durch Namen und ggf. Argumente angegeben (alle unten stehenden
Wörter in Großbuchstaben sind Standard-REXX Befehle):
IF rc=640 THEN DO
SAY "Anruf fehlgeschlagen!" SIGNAL done END ELSE DO SAY "Success!" END | |
ZOC-Befehle | |
ZOC-Befehle werden als eine Art REXX-Unterfunktion aufgerufen und ausgeführt. Es gibt sie im Prinzip in zwei Formen:
Befehle, die keine Rückgabewert liefern (oder wenn Sie diesen nicht benötigen),
werden durch CALL zusammen mit dem ZOC-Befehl und den benötigten, durch
Komma getrennten, Argumenten aufgerufen. Befehle, die Rückgabewerte liefern,
übergeben die Liste aller Argumente, in Klammern eingeschlossen, hinter dem
Befehlsnamen.
/* Zwei Befehle ohne Rückgabewert: */
CALL ZocBeep 2 CALL ZocConnect "sss.hogwarts.edu" /* Ein Befehl mit Rückgabewert: */ answer= ZocAsk("Wie ist Ihr Name") |
Ein kleines Beispiel |
Eine häufige Anwendung für REXX-Programme ist das Einloggen und die automatische Ausführung von Befehlen.
Einfache Login-Prozeduren können zwar auch ohne REXX Skript direkt im jeweiligen Eintrag des Adressbuchs als AutoLogin angegeben werden (siehe Adressbucheinträge ändern), deren Möglichkeiten sind jedoch auf sehr simple Abläufe begrenzt.
Das nachfolgende REXX Beispiel ist dagegen etwas komplexer. Es baut
eine SSH Verbindung zu einem Rechner auf, führt dort den
mail Befehl aus um zu sehen ob neue Email vorliegt, meldet sich
wieder ab und zeigt ggf. eine Meldung.
Was nun? |
Nach diesem Überblick ist der nächste Schritt die Übersicht über die REXX Sprachelemente.
← Zurück zu Die Programmierung von ZOC (REXX/DDE)