========================================= || || || A r e x x M a n a g e r 2 . 1 || || || ========================================= Autor: Karsten Wysocki An der Mühle 3 38372 Büddenstedt Entwicklungswerkzeug: ArexxManager ArexxManager 2.1 ist ein Update zu ArexxManager. Für Benutzer der vorherigen Version: Beachten Sie Bitte die Änderungen und Ergänzungen: ArexxShell: Beispiele und nachfolgende Absätze ScriptManager: [Edit] & [Launch] & [VCopy] <- NEU!!! ResourceManager: [Add Lib] & [Libs] <- früher Show Libs Weitere Änderungen zur Vorversion: - Bessere Editiermöglichkeiten in der ArexxShell (wie in DOS-Shell). - Die Datei-Requester des Script-Managers sind nicht mehr auf das REXX:-Verzeichnis fixiert. Der ScriptManager merkt sich das zu- letzt benutzte Verzeichnis und den Dateinamen. - Die Launch-Funktion des ScriptManagers erzeugt nur noch dann ein Ausgabefenster, wenn Fehler im Programm auftreten oder vom Pro- gramm Ausgaben erzeugt werden. - Neue Funktion in ScriptManager: [VCopy] (siehe Beschreibung) - Die vom ResourceManager erzeugten Listen der Show-Funktionen wer- den jetzt alphabetisch sortiert und lassen sich bei Überlänge Sei- weise durchblättern. Die einzige Ausnahme ist die Funktion [Libs], die Liste der Libraries wird in der Such-Reihenfolge für Funkti- onsaufrufe ausgegeben. - Code-Optimierung bei allen Komponenten des ArexxManagers Einleitung: =========== Der ArexxManager ist ein Werkzeug für angehende und professionelle Arexx-Programmierer. ArexxManager ist ein komplett in Arexx program- miertes und multitasking-fähiges Programmsystem. Es besteht aus drei im multitasking laufenden Komponenten. Das Programm ArexxShell erzeugt zwei Fenster, eins zu Ausgabe und eins zur Eingabe. Damit können inter- aktiv Arexx-Kommandos und Library-Funktionen getestet werden. Mit dem Programm ScriptManager können Arexx-Scripts verwaltet, bearbeitet und getestet werden. Der ResourceManager ermöglicht es dem Arexx-Programmie- rer die Arexx-Resourcen auf bequeme Art einzusehen und zu verwalten. Auch die Arexx-Trace-Console (TCO, TCC) läßt sich hiermit aktivieren und de- aktivieren. Das vierte Programm, ArexxManager, gibt dem Benutzer die Mög- lichkeit alle drei System-Komponenten bequem gleichzeitig mit einem Mouse- click zu starten. Die Programme können jedoch auch einzeln gestartet und benutzt werden. ArexxManager benutzt die rexxapp.library von Jeff Glatt (erhältlich z.B. auf Fish-Disk 463) und die apig.library von Ronnie E. Kelly (erhältlich z. B. auf Fish-Disk 634). Laut beiliegendem Text wird die apig.library von Ronnie E. Kelly zu Public Domain erklärt und ist frei kopierbar und benutzbar. Zur Veröffentlichung der rexxapp.library wurden keinerlei An- gaben betreffs der Urheberrechte gemacht. Systemvoraussetzungen: ====================== Um ArexxManager zu benutzen benötigen Sie System 2.x oder höher. Arexx muß installiert sein. Das heißt, in der Startup-Sequence muß der Arexx-Handler (RexxMast) gestartet werden, die Arexx-Programme im REXXC-Verzeichnis des Systems müssen vorhanden sein und das Verzeichnis muß als Pfad in der Startup-Sequence eingetragen sein (path sys:rexxc add), die Arexx-Libraries (rexxsyslib.-, rexxsupport.- und rexxhost.library) müssen sich im LIBS:-Verzeichnis befinden und es muß ein Verzeichnis für Arexx-Scripts existieren, daß in der Startup-Sequence oder im User-Startup als REXX: assigned sein muß (assign REXX: laufwerkname:pfad). Installation: ============= Schieben Sie die ArexxManager-Schublade von der Diskette in ein von Ihnen gewünschtes Festplattenverzeichnis. Um bequem mit ArexxManager arbeiten zu können, aktivieren Sie die ArexxMananger-Schublade im Festplattenverzeich- nis und wählen dann in der Workbench-Titelleiste "Icons/Leave out". Nun ha- ben Sie die ArexxManager-Schublade direkt auf der Workbench. Positionieren Sie die Schublade und fixieren Sie sie dann mit "Icons/Snapshot". Öffnen Sie nun die ArexxManager-Schublade und doppelklicken Sie das CopyLib- Icon. Nun wird die von ArexxManager benötigte apig.library in Ihr LIBS:- Verzeichnis kopiert. Danach ist die Installation abgeschlossen. Programmbeschreibungen: ======================= ArexxManager: ------------- Der ArexxManager dient zum gleichzeitigen Starten der einzelnen Programme ArexxShell, ScriptManager und ResourceManager. Diese Komponenten können jedoch auch einzeln über Ihr eigenes Icon gestartet und benutzt werden. ArexxShell: ----------- Die Benutzeroberfläche von ArexxShell besteht aus zwei Fenstern. Im Einga- be fenster können Arexx-Kommandos und Funktionsaufrufe eingegeben werden. Das Ergebnis erscheint dann im Ausgabefenster. Ausgegeben werden jeweils das Ergebnis des Kommandos, die Adresse an die das Kommando geschickt wur- de, der ReturnCode (RC) und das zurückgelieferte Resultat (RESULT). Im Fehlerfall erscheint die entprechende Arexx-Fehlermeldung. Eingaben, die in der ArexxShell fehlerfrei abgearbeitet wurden, können Sie mit der gleichen Syntax in Ihrem Arexx-Programm-Code verwenden. Da- durch eignet sich die ArexxShell besonders für angehende Arexx-Program- mierer sehr gut zum Experimentieren. Beispiele: Eingabe: say "Hallo" Ausgabe: Hallo ADDRESS:REXX RC:0 Result: Eingabe: say show(files) Ausgabe: STDOUT STDIN ADDRESS:REXX RC:0 Result: Eingabe: say show( Ausgabe: +++ Error 42 in Line 1: Unbalanced parentheses Command returned 10/42: Unbalanced parentheses rx failed returncode 10 Eingabe : address command dir Ausgabe : ArexxManager2.1(dir) apig.library ArexxManager2.1 ArexxManager2.1.info ArexxShell2.1 . . . . . . ADDRESS:COMMAND RC:0 RESULT:RESULT Eingabe: address 'ScriptManager' 'DIE' Diese Message veranlaßt den ScriptManager sich selbst zu beenden und das ScriptManager-Fenster schließt sich. Ausgabe: ADDRESS:'SCRIPTMANAGER' RC:0 RESULT:RESULT Starten des Echtzeitvideodigitzers VLab, danach: Eingabe: address vlab Ausgabe: ADDRESS:VLAB RC:0 Result: Eingabe: 'aslrequest "files"' Daraufhin produziert VLab einen Datei-Requester, nach Auswahl der Datei "Ram Disk:IFR.0006" aus dem Requester: Ausgabe: ADDRESS:VLAB RC:0 Result:Ram Disk:IFR.0006 Es ist auch möglich eine ganze Folge von Kommandos einzugeben. Dabei ver- wendet man das Semikolon als Trennzeichen. Die Eingabe address vlab;'aslrequest "files"' ergibt dann das gleiche Ergebnis wie das obenstehende Beispiel. Anbei ein kleiner Tip: Das Hochkomma (') verbirgt sich auf der deutschen Tastatur unter Alt/Ä. Fehlerhafte Eingaben können mit der Backspace- oder den Cursor- und der Del-Taste korrigiert werden. Mit der Tasten Cursor-Up und Cursor-Down können Sie Ihre letzten Eingaben zurückholen. Verlassen können Sie die ArexxShell durch Eingabe von exit oder x. Das Ausgabefenster schließt sich dann nach ca. 2 Sekunden automatisch. ScriptManager: -------------- Der ScriptManager dient zum Verwalten und Bearbeiten Ihrer Arexx-Scripts. Alle Gadgets im ScriptManager erzeugen einen Datei-Requester. Erst nach Auswahl einer Datei aus dem Requester wird die gewählte Funktion ausge- führt. Bei Wahl von [Delete] (Löschen), erscheint nach der Auswahl von Dateien zusätzlich ein Sicherheits-Requester mit dem Sie das Löschen der Dateien explizit bestätigen müssen. In den Datei-Requestern ist das Ver- zeichnis REXX: für Arexx-Scripts voreingestellt. Beschreibung der einzelnen Funktionen: [Edit] Dient zum Editieren von Arexx-Scripts. Nach Auswahl eines Scripts aus dem Datei-Requester wird ein Editor gestartet mit dem man das im Requester auswählte Script editieren kann. Beim Erststart von ScriptManager ist als Editor ED voreingestellt. Wenn Sie einen anderen Editor bevorzugen, können Sie den von Ihnen gewünschten Editor mit dem Gadget [Change Editor] dauerhaft einstellen. Wenn Sie im Datei-Requester keine Datei auswählen und statt [Cancel] [ OK ] drücken, wird der Editor auch gestartet, jedoch keine Datei geladen. Noch ein Tip: Der Arexx-Interpreter ist nicht in der Lage Programme zu laden, in deren Namen Leerzeichen vorkommen. Achten Sie also beim Speichern Ihrer Arexx-Scripts mit Ihrem Editor darauf, keine Programmnamen die Leerzeichen enthalten zu vergeben. [Launch] Mit dieser Funktion können Sie Ihre Arexx-Scripts starten. Wenn in Ihrem Script ein Fehler auftritt, oder Sie z.B. mit den Kommandos SAY oder ECHO eine Ausgabe erzeugen, wird ein Fenster geöffnet in dem die Fehlermeldung bzw. Ihre Ausgabe erscheint. Im Kopf des Ausgabe-Fensters ist der Name des dazugehörigen Arexx- Programms eingetragen. Wenn Ihr Arexx- Programm beendet ist und Sie das Ausgabe-Fenster nicht mehr benötigen, können Sie es mit dem Close-Gadget in der linken oberen Ecke schließen. Falls Sie in Ihrem Programm Benutzereingaben anfordern wollen, ist es zu empfehlen, nach folgendem Beispiel ein eigenes Fenster zu öffnen: x = open(outwin,"CON:0/0/400/100/MeinFenster/SMART") Eingaben können Sie dann mit der readline-Funktion anfordern: eingabe = readln(outwin) Für Ausgaben benutzen Sie dann die writeline-Funktion writeln(outwin,ausgabe) [Delete] Damit können Sie in Ihrem Script-Verzeichnis aufräumen. In dem erscheinenden Datei-Requester sind mehrere Dateien auswählbar. Nach dem Drücken des [ OK ]-Gadgets bekommen Sie zusätzlich einen Sich- erheits-Requester in dem alle ausgewählten Dateien nochmals aufge- listet sind. Erst wenn Sie jetzt nochmals [ OK ] drücken, werden die aufgelisteten Dateien gelöscht. Das Löschen der Dateien kann sowohl im Datei-Requester als auch im Sicherheits-Requester durch Auswahl von [Cancel] abgebrochen werden. [Editor] Beim Erststart des ScriptManagers ist als Editor ED vorein- gestellt. Wenn Sie einen anderen Editor bevorzugen, können Sie die- sen mit der Funktion Editor dauerhaft einstellen. Auch das Wechseln des aktuell eingestellten Editors ist jederzeit möglich. Nach Anwahl von [Editor] erscheint ein Datei-Requester mit dem Sie den von Ihnen gewünschten Editor auswählen können. Nach dem Drücken des [ OK ]-Gadgets wird dieser Editor zukünftig zum Bearbei- ten Ihrer Scripts für die Funktion [Edit] verwendet. [Icon] Damit können Sie Ihre Arexx-Scripts mit einem Icon versehen, damit Sie Ihre Arexx-Programme auch von der Workbench mit einem Maus-Doppelklick starten können. Wenn Sie das erstellte Icon mit der Maus einmal anklicken und dann in der Worbench-Titelleiste "Icons/Information" wählen, werden Sie feststellen, daß als Tool- Type "CONSOLE=NIL:" eingetragen ist. Das bewirkt, daß das von Rx beim Script-Start erzeugte Rx_Out-Fenster unterdrückt wird. Wenn Sie jedoch das Rx_Out-Fenster für Aus- oder Eingaben Ihres Arexx- Programms benötigen (z.B. Say, Echo, und Pull benutzen dieses Fen- ster), löschen Sie das Tool-Type. [VCopy] Mit dieser Funktion haben Sie die Möglichkeit von dem im erscheinenden Datei-Requester ausgewählten Script eine Versions- Kopie zu erstellen. Das Script wird mit dem gleichen Namen kopiert und eine Versionsnummer angehängt (z.B wird "MyScript" nach "MyScript.1" kopiert). Wenn eine Versionsnummer vorhanden ist wird diese um eins erhöht. Es werden dabei auf keinen Fall Dateien über- schrieben. Falls schon eine Datei mit der neuen Versionsnummer vor- handen ist, wird die Versionsnummer solange erhöht, bis die neue Version kopiert werden kann ohne eine Datei zu überschreiben. ResourceManager: ---------------- Mit diesem Programm ist es Ihnen möglich die Arexx-Resourcen einzusehen und zu verwalten. Alle mit den Show-Funktionen erzeugten Listen werden zur besseren Orientierung alphabetisch sortiert. Lediglich die Funktion [Libs] bildet hierbei eine Ausnahme. Die Libraries werden in der Such-Reihenfolge aufgelistet. Damit kann man bei Libraries mit gleichen Funktionsnamen nachvollziehen, welche Library benutzt wurde. Auch das Öffnen und Schließen der Trace-Console (TCO,TCC) wird hier auf Knopfdruck ermöglicht. Zusätzliche Information zum Tracing: Verwenden Sie TS (Tracing im Single-Step) nicht zusammen mit ArexxManager! Wenn Sie TS starten, gilt der Single-Step-Modus für alle laufenden Arexx-Programme, also auch für ArexxManager! Aus diesem Grund sind auch nur TCO und TCC im ArexxManager implementiert. Beschreibung der einzelnen Funktionen: [Trace ON] Einschalten des Trace-Modus (TCO). Es wird eine Trace-Console erzeugt, auf der mögliche Fehler in Ihren mit dem ScriptManager ge- starteten Arexx-Programmen ausgegeben werden. [Trace OFF] Auschalten des Trace-Modus (TCC). Die Trace-Console wird ge- schlossen. Wenn keine Fehler aus voherigen Programmläufen angezeigt wurden, schließt sich die Trace-Console sofort. Falls während des Betriebes der Trace-Console Fehler aufgetreten sind, schließt sich die Trace-Console erst nach Beendigung der fehlerhaften Arexx-Pro- gramme. [Add Lib] Damit lassen sich zusätzliche Arexx-Funktions-Libraries zu der aktuellen Liste hinzufügen. Es erscheint ein Datei-Requester, der auf das LIBS:-Verzeichnis voreingestellt ist und Sie dazu auffor- dert die von Ihnen gewünschte Arexx-Library auszuwählen. Erst nachdem eine Arexx-Library in der Library-Liste eingetragen ist, können die Library-Funktionen von Arexx-Programmen benutzt werden. Dieses entspricht der Arexx-Funktion addlib(). Dabei ist zu beachten, daß die mit [Add Lib] hinzugefügten Libraries mit dem Standard-Offset "-30" in die Liste eingetragen werden. Wenn Sie also eine Library mit einem ungewöhnlichen Offset aufsetzen möchten, sollten Sie dies entweder mit call addlib("libraryname",prio,offset,version) in der ArexxShell bzw. einem Arexx-Programm oder mit RXLIB von der DOSShell aus tun. Ein falscher Library-Offset kann einen Rechnerab- sturz verursachen. Weiterhin gilt es zu bedenken, daß unter Umständen mehrere Arexx- Libraries gleichlautende Funktionen besitzen können. Das kann zu Fehlern in Arexx-Programmen führen, die dann beim Aufruf solcher Funktionen die falsche Library benutzen könnten. [Rem Lib] Zum Entfernen von Arexx-Libraries aus der Library-Liste. Auch hierbei erscheint ein Datei-Requester, der das LIBS:-Verzeich- nis auflistet. Die von Ihnen ausgewählte Library wird nach dem Drücken von [ OK ] aus der Library-Liste entfernt, sofern Sie dort eingtragen ist. Die Library wird NICHT im LIBS:-Verzeichnis ge- löscht, sondern nur aus der sich im Arbeitsspeicher befindlichen Arexx-Library-Liste herausgenommen. Die apig.library und die rexxsupport.library lassen sich allerdings nicht entfernen, sie wer- den vom ArexxManager benutzt. [Libs] Zeigt die aktuelle Library-Liste. Die Ausgabe ist nach der Such-Reihenfolge sortiert, d.h. bei gleichlautenden Funktionen in mehreren Libraries wird die am weitesten oben stehende Library be- nutzt. [Clips] Listet die aktuelle Clip-Liste auf. [Ports] Erzeugt eine Auflistung aller aktuellen Arexx-Ports. Auch die Ports des ArexxManagers sind in dieser Liste zu finden. Sie werden benötigt um die Mouseclicks in den Requestern und Fenstern des ArexxManagers an die laufende Applikation zu senden. [Files] Listet alle geöffneten logischen Dateien auf. [Ready] Zeigt eine Liste aller Tasks, die sich im READY-Status befinden. [Waiting] Erzeugt eine Auflistung der Tasks, die sich im WAITING-Status befinden. Nachwort: ========= Zusätzliche Informationen zu den oben erwähnten und teilweise beschriebenen Arexx-Funktionen sowie den Arexx-Tools RX TCC TCO und TS des REXXC:-Ver- zeichnisses finden Sie in Ihrem Handbuch zur Systemsoftware im Abschnitt "Zusätzliche Dienstprogramme". Für Bugreports und weitere Anregungen wäre ich sehr dankbar. Nachstehend meine Adresse: Karsten Wysocki An der Mühle 3 38372 Büddenstedt