Dieser Abschnitt beschreibt in alphabetischer Reihenfolge die ZOC-Erweiterungen zur REXX-Sprache. Alternativ gibt es auch eine Liste von ZOC-REXX Befehle nach Kategorien
REXX ist ansich eine vollständige Programmiersprache mit Variablen, Schleifen usw. (siehe REXX-Sprachelemente). Dieser Grundumfang wird von ZOC durch die untenstehenden Befehle für die Terminalemulation erweitert.
Der Übersichtlichkeit halber werden in den unten folgenden Beispielen die REXX Sprachelemente in Großschrift verwendet, z.B. CALL, IF, SAY. ZOC-Erweiterungen werden 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. antwort= ZocAsk("Ihr Name?")).
Aufruf von ZOC-Erweiterungen |
Die Namen der ZOC-Erweiterungen beginnen immer mit Zoc. Sie gleichen internen Prozeduren/Funktionen und für die meisten davon müssen ein oder mehrere Argumente angegeben werden.
Grundsätzlich gibt es zwei Arten von ZOC-Befehle: Befehle, die einen Wert zurückgeben und Befehle, die keinen Wert zurückgeben.
Allerdings ist es möglich, Funktionen (also Befehle mit Rückgabewert) wie Prozeduren aufzurufen, wenn der Rückgabewert nicht von Interesse ist. Daher sind z.B. sowohl die Aufrufe CALL ZocDownload "ZMODEM", "DATENORDNER" als auch error= ZocDownload("ZMODEM", "DATENORDNER") erlaubt. Zusätzlich erlaubt die ZOC-REXX Implementierung sogar die folgende Variante: CALL ZocDownload("ZMODEM", "SOMEFOLDER")
ZOC REXX Erweiterungen |
In der nachfolgenden alphabetisch sortierten Befehlsliste sind diejenigen ZOC-Erweiterungen, die signifikante Rückgabewerte haben, dadurch gekennzeichnet, dass sie in den Syntax-Beispielen in Funktionsform (mit Klammern) geschrieben sind.
ZocAsk([<titel> [, <vorgabe>]]) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Öffnet ein Texteingabefenster und liest Text vom Benutzer ein.
Bei Angabe eines Arguments <vorgabe> wird das Eingabefeld mit diesem Text vorbelegt.
answer= ZocAsk("Das beste Terminal?", "ZOC")
IF answer= "ZOC" THEN … Siehe auch: ZocDialog, ZocAskPassword, ZocAskFilename, ZocAskFoldername, ZocRequest, ZocRequestList | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocAskPassword([<titel>]) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Ähnlich dem Befehl ZocAsk, dient jedoch zur Kennworteingabe, d.h. eingegebenen Zeichen
werden nur als Platzhalter angezeigt. Außerdem kann das Feld nicht vorbelegt werden.
pw= ZocAskPassword("Ihr Passwort?")
IF pw=="geheim" THEN … Siehe auch: ZocAsk, ZocDialog, ZocAskFilename, ZocRequest, ZocRequestList | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocAskFilename(<titel> [, <vorgabe>]) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Öffnet einen Dateiauswahldialog und liefert den ausgewählten Dateinamen zurück.
Bei Abbruch des Dialogs wird der Text ##CANCEL## zurückgeliefert.
file= ZocAskFilename("Welche Datei übertragen?", "*.ZIP")
IF file\="##CANCEL##" THEN DO CALL ZocUpload "ZMODEM", file END Siehe auch: ZocAsk, ZocDialog, ZocFilename, ZocAskFilenames, ZocAskFoldername, ZocListFiles, ZocMessageBox, ZocRequest, ZocRequestList | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocAskFilenames(<title> [, <vorgabe> [, <trennzeichen>]]) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Öffnet einen Dateidialog und liefert die Liste der selektieren Dateinamen zurück. Die <vorgabe> kann einen Ordner oder eine vorselektierte Datei angeben. Bei Abbruch des Dialogs wird der Text ##CANCEL## zurückgeliefert.
Die Namen können per REXX Funktion ZocString("WORD", idx) aus der
Liste extrahiert werden. Falls Sie Dateinamen erwarten, die Leerzeichen im
Namen haben, muss ein anderes Trennzeichen angegeben werden. Die Namen können
dann stattdessen mittels der Funktion ZocString("PART", …)
aus der Liste geholt werden.
files= ZocAskFilenames("Welche Dateien bearbeiten?", "*.ZIP", "|")
anzahl= ZocString("PARTCOUNT", files, "|") DO i=1 TO anzahl name= ZocString("PART", files, i, "|") SAY i||". NAME= "||name END Siehe auch: ZocAsk, ZocFilename, ZocAskFilename, ZocAskFoldername, ZocListFiles, ZocMessageBox, ZocRequest, ZocRequestList | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocAskFoldername(<titel> [, <vorgabe>]) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Öffnet einen Dialog zur Auswahl eines Ordners und liefert den gewählten Namen zurück.
Die optionale <vorgabe> ist ein Ordner, der beim Anzeigen des Dialogs vorselektiert ist.
Bei Abbruch des Dialogs wird der Text ##CANCEL## zurückgeliefert.
folder= ZocAskFoldername("Select Folder")
IF folder\="##CANCEL##" THEN DO SAY folder END Siehe auch: ZocFilename, ZocAskFilename, ZocAskFilenames, ZocListFiles | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocBeep <n> | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Erzeugt n Signaltöne.
CALL ZocBeep 2
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocClipboard <kommando> [, <zeichenkette>] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Führt eine Funktion der folgenden Funktion der Zwischenablage aus.
Beispiel:
clip= ZocClipboard("READ")
newclip= clip||ZocCtrlString("^M^J Zoc war hier!") CALL ZocClipboard "WRITE", newclip | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocClearScreen | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Löscht den Bildschirm und setzt die momentan aktive Emulation in den Ursprungszustand zurück.
CALL ZocClearScreen
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocCommand <funktion> | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Führt eine ZOC-interne Funktion aus. Gültige Werte für <funktion> sind:
Beispiel:
CALL ZocCommand "SAVESESSIONPROFILE"
Beispiel:
CALL ZocCommand "SETMARKEDAREA", "BLOCK", 0,0, 1,79
Siehe auch: ZocMenuEvent | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocConnect [<gegenstelle>] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Baut einer Verbindung zur angegebene Gegenstelle auf. Ist der Parameter nicht angegeben,
erscheint ein Eingabefenster. Als Verbindungstyp dient entweder die aktuell im
Verbindungsprofil eingestellte Verbindungstyp, bzw. kann dieser mittels des Befehls
ZocSetDevice festgelegt werden.
CALL ZocSetDevice "Secure Shell"
CALL ZocConnect "harry:alohomora@192.168.1.1:10022" Beispiel:
CALL ZocSetDevice "Telnet"
CALL ZocConnect "server.hogwarts.edu" Call ZocTimeout 20 x= ZocWait("Login:") IF x=640 THEN SIGNAL waitfailed /* login-prompt kam nicht */ CALL ZocSend "harry^M" x= ZocWait("Password:") IF x=640 THEN SIGNAL waitfailed /* password-prompt kam nicht */ CALL ZocSend "alohomora^M" /* here we are logged in */ waitfailed: EXIT Siehe auch: ZocConnectHostdirEntry, ZocSetDevice, ZocDisconnect, ZocGetInfo("ONLINE") | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocConnectHostdirEntry <name> | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Stellt eine Verbindung über einen Eintrag im Adressbuch an (der Eintrag
sollte nicht mit einer AutoLogin REXX-Datei verknüpft sein).
CALL ZocConnectHostdirEntry "ZOC-Support-Mailbox"
Siehe auch: ZocConnect, ZocDisconnect, ZocGetInfo("ONLINE") | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocCtrlString(<text>) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Diese Funktion konvertiert eine Zeichenkette die Control-Codes enthält in eine
Zeichenkette, bei der die Steuerzeichen durch
ihre eigentlichen Werte/Bytes ersetzt sind.
crlf= ZocCtrlString("^M^J") /* crlf wird hex"0D0A" */
Siehe auch: ZocString | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocDdeClient([<kanal>,] <unterkommando> [, <parameter>] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Diese Funktion kann dazu verwendet werden, um mit anderer Software über DDE (Dynamic Data Exchange) zu interagieren. MS-Excel unterstützt z.B. DDE und der DDE-Client kann dazu verwendet werden, um zum Beispiel Daten aus einem Excel Arbeitsblatt abzufragen. Mögliche <unterkommandos> sind:
Beispiel:
chan= ZocDdeClient("INIT", "EXCEL", "Tabelle1")
SAY "INIT: channel= "||chan IF chan\="##ERROR##" THEN DO data= ZocDdeClient(chan, "REQUEST", "Z1S1") SAY "REQUEST-DATA: "||data CALL ZocDdeClient chan, "CLOSE" END EXIT | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocDelay [<dauer>] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Wartet die angegebene <dauer> in Sekunden oder 200 Millisekunden (falls kein Parameter angegeben wurde).
Bruchteile von Sekunden können mit Dezimalpunkt (nicht Komma) dargestellt werden.
CALL ZocDelay 4.8
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocDeviceControl <string> | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Dieser Befehl gibt ein Kommando an eines der ZOC Kommunikationsgeräte um dort spezielle Funktionen auszuführen (z.B. Abfrage der Signale am COM-Port bei Verbindungstyp Serial/Modem).
Mögliche Funktionen der einzelnen Kommunikationsmethoden sind unter Verbindungsmethoden beschrieben.
state= ZocDeviceControl("GETRS232SIGNALS")
Siehe auch: ZocSetDevice | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocDialog <subcommand> [, <parameter>] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Führt eine Dialog-Funktion aus:
Beispiel:
dlgrc= ZocDialog("SHOW", "MAIN@test.dlg")
IF dlgrc=="##OK##" THEN DO name= ZocDialog("GET", "ED1") SAY "Hallo "||name SAY ZocDialog("GET", "CB1") SAY ZocDialog("GET", "P1") SAY ZocDialog("GET", "P2") END Beispiel:
dlgrc= ZocDialog("LOAD", "MAIN@test.dlg")
SAY "Dialog load result: "||dlgrc CALL ZocDialog "SET", "ED1", "Test" CALL ZocDialog "SET", "CB1", "1" CALL ZocDialog "SET", "DD1", "Red" CALL ZocDialog "SET", "DD2", "Apple|Orange|Grape" CALL ZocDialog "SET", "DD2", "Orange" dlgrc= ZocDialog("SHOW") IF dlgrc=="##OK##" THEN DO /* ergebnisse bearbeiten */ END Siehe auch: ZocAsk, ZocAskPassword, ZocMessageBox, ZocRequest, ZocRequestList | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocDisconnect | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Beendet die momentane Verbindung. Identisch mit ZocCommand "DISCONNECT".
CALL ZocDisconnect
Siehe auch: ZocConnect, ZocConnectHostdirEntry | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocDownload(<protokoll>[:<optionen>], <datei oder verz>) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Datei-Download einer oder mehrerer Dateien unter Verwendung eines Protokolls. Der erste Parameter ist der Name des Übertragungs-Protokolls wie in der Liste bei Optionen→Verbindungsprofil→Dateitransfer. Der zweite Parameter kann einen Dateinamen oder Pfad zum Speichern der empfangenen Dateien enthalten (siehe Hinweis unten). Der Parameter <optionen> ist beim Befehl ZocUpload ausführlich erklärt.
Diese Funktion liefert je nach Erfolg oder Fehler die Zeichenkette
##OK## oder ##ERROR##
zurück.
CALL ZocSetSessionOption "TransferAutoStart=no"
ret= ZocDownload("ZMODEM", "C:\ZOC\INFILES") IF ret=="##ERROR##" THEN DO CALL ZocBeep 5 SAY "Download fehlgeschlagen." END Hinweis: Der zweite Parameter hängt von der Art des Transfers ab: XMODEM: Lokaler Dateiname (Zieldatei). YMODEM: Lokaler Ordner (Zielordner). ZMODEM: Lokaler Ordner (Zielordner). SCP: Entfernter Dateiname (Quelldatei), z.B. /var/log/somefile.txt Hinweis: Wenn in den Transfer-Optionen die Funktion Autostart eingeschaltet ist und die Gegenstelle den Transfer startet, noch bevor ZOC-REXX den ZocDownload-Befehl verarbeitet, öffnen sich zwei Download-Fenster. Es muss deshalb sichergestellt sein, dass ZocDownload ausgeführt wird bevor die Gegenstelle anfängt zu senden, oder dass die Autostart-Option ausgeschaltet ist. Hinweis: Falls die Datei einen Namen hat, der in Optionen→Verbindungsprofil→Dateibehandlung zur Speicherung im alternativen Download-Verzeichnis vorgesehen ist, wird der Verzeichnis-Parameter ignoriert. Siehe auch: ZocUpload | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocDoString(<aktionscode>) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Übergibt einen Aktionscode zur Ausführung an ZOC.
Sie können eine solche Zeichenkette erstellen, indem Sie unter
Optionen→Tastaturprofile temporär eine Taste
mittels des dortigen Aktions-Assistenten belegen und danach den dort erzeugten
Wert kopieren.
CALL ZocDoString "^EXEC=notepad.exe"
Siehe auch: ZocMenuEvent, ZocShell, ZocSendEmulationKey | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocEventSemaphore(<unterkommando>[, <signal-id>]) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Diese Funktion kann verwendet werden, um Signale zwischen gleichzeitig laufenden REXX Skripen auszutauschen, bzw. diese zu synchronisieren. Sie bietet einen Signal-Mechanismus mit insgesamt 16 Signalen, auf die andere Skripte warten können. Mögliche Werte für <unterkommando> sind:
Beispiel:
Call ZocEventSemaphore "RESET"
/* do some work */ … /* Warte auf Signal (FIRE) von anderem Script */ ret= ZocEventSemaphore("WAIT") IF ret\=640 THEN DO /* Signal erhalten */ END Siehe auch: ZocTimeout, ZocWait, ZocGlobalStore | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocFilename(<befehl>[, <options>]) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Diese Gruppe von Funktionen bietet Dateinamensoperationen.
Beispiel:
workdir= ZocGetInfo("WORKDIR")
datadir= ZocFilename("RESOLVE", "%ZOCFILES%"); fullfile= ZocAskFilename("Choose File", workdir) file= ZocFilename("GETFILE", fullfile) path= ZocFilename("GETPATH", fullfile) file2= file||".tmp" target= ZocFilename("COMBINE", path, file2) IF ZocFilename("EXISTS", target)=="##YES##" THEN DO CALL ZocMessageBox "Can't overwrite file "||file2 EXIT END | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocFileCopy(<dateiname>, <ziel>) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kopiert eine Datei an einen anderen Ort. Ziel kann entweder ein Ordner oder Dateiname
sein kann (Wildcards wie * oder ? werden nicht unterstützt, siehe ggf.
ZocListFiles).
CALL ZocFileCopy "Z:\SALES.DAT", "Z:\SALES.BAK"
ok= ZocFileCopy("C:\DATA\USERFILE.TMP", "C:\BACKUP") IF ok\="##OK##" THEN EXIT Siehe auch: ZocFilename, ZocFileDelete, ZocFileRename, ZocListFiles, ZocShell | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocFileDelete(<dateiname>) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Löscht eine Datei. Der Dateiname darf keine Jokerzeichen (* oder ? ) enthalten (siehe ggf. ZocListFiles).
Rückgabewerte sind ##OK## oder ##ERROR##
ok= ZocFileDelete("C:\DATA\USERFILE.TMP")
IF ok\="##OK##" THEN EXIT filename= ZocFilename("COMBINE", "%ZOCFILES%", "rexx.log") CALL ZocFileDelete filename Siehe auch: ZocFilename, ZocFileRename, ZocFileCopy, ZocListFiles, ZocShell | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocFileRename(<oldname>, <newname>) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Benennt eine Datei um. Die umbenannte Datei befindet sich im selben Verzeichnis wie die ursprüngliche Datei. Dateinamen dürfen keine Jokerzeichen (* oder ?) enthalten (siehe ggf. ZocListFiles).
Rückgabewerte sind ##OK## oder ##ERROR##
ret= ZocFileRename("C:\DATA\USERFILE.TMP", "C:\DATA\USERFILE.TXT")
Siehe auch: ZocFilename, ZocFileDelete, ZocFileCopy, ZocListFiles, ZocShell | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocGetHostEntry(<name>, <schlüsselwort>) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Liefert die Zeichenkette für eine Einstellung eines Adressbucheintrags im Schlüsselwort-Wert
Format (siehe hierzu auch die Befehle ZocSetHostEntry oder ZocSetSessionOption) .
pair= ZocGetHostEntry("ZOC-Support-Mailbox", "connectto")
PARSE VALUE pair WITH key'="'val'"' CALL ZocConnect val | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocGetInfo(<detail>) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Abhängig vom Parameter, liefert diese Funktion eine entsprechende Information über die Systemumgebung und über den internen Zustand von ZOC.
Beispiel:
ver= ZocGetInfo("VERSIONEX")
SAY "ZOC "||ver CALL ZocTimeout 30 timeout= ZocWait("Passwort") IF timeout=640 | ZocGetInfo("ONLINE")<>"##YES##" THEN DO SIGNAL PANIC /* Verbindungsabbruch */ END | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocGetProgramOption(<schlüsselwort>) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Liefert die Zeichenkette für eine ZOC-Einstellung im Schlüsselwort-Wert Format
(Details zu diesem Format in der Beschreibung des Befehls ZocGetSessionOption
und ZocSetProgramOption).
pair= ZocGetProgramOption("DisconEndProg")
PARSE VALUE pair WITH key"="value IF value=="yes" THEN DO SAY "ZOC wird nach dieser Verbindung beendet." END Siehe auch: ZocGetProgramOption, ZocGetSessionOption, ZocSetProgramOption | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocGetScreen(<x>,<y>,<länge>) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Diese Funktion kann verwendet werden, um Zeichen auszulesen, die aktuell auf
dem ZOC-Bildschirm angezeigt werden. Die Funktion liefert <länge>
Zeichen ab der Bildschirmposition <x>,<y> (0,0 = links/oben) zurück
und springt ohne Anhängen von CR oder LF automatisch in nächste Zeilen.
Alternativ gibt es einige Abkürzungen für häufige Kombinationen von x,y und Länge:
curline= ZocGetScreen("LEFTOFCURSOR")
SAY "^M" SAY "Der Text links vom Cursor war: "||curline Beispiel:
width= ZocGetInfo("SCREENWIDTH")
posy= ZocGetInfo("CURSOR-Y") data= ZocGetScreen(0,0, posy*width) IF POS("A", data)=0 THEN DO SAY "Der Bildschirmabschnitt über dem Cursor enthält kein 'A'." END Beispiel:
cx= ZocGetInfo("SCREENWIDTH")
cy= ZocGetInfo("SCREENHEIGHT") -- Schleife über alle Zeilen am Bildschirm DO y= 0 TO cy-1 line= ZocGetScreen(0,y, cx) -- Prüfe jede Zeile auf den Text "**SUCCESS**" IF POS("**SUCCESS**", line)>=1 THEN DO Call ZocMessageBox "**SUCCESS* gefunden in Zeile "||y END END Siehe auch: ZocGetInfo("CURSOR-X"), ZocGetInfo("CURSOR-Y"), ZocGetInfo("SCREENWIDTH"), ZocGetInfo("SCREENHEIGHT") | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocGetSessionOption(<schlüsselwort>) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Liefert die Zeichenkette Schlüsselwort-Wert für eine ZOC-Einstellung aus
dem Verbindungsprofil (weitere Details hierzu beim Befehl ZocSetSessionOption).
pair= ZocGetSessionOption("Beep")
PARSE VALUE pair WITH key"="value IF value=="no" THEN DO SAY "Die Option Beep ist ausgeschaltet" END Beispiel:
pair= ZocGetSessionOption("EnqString")
PARSE VALUE pair WITH key'="'value'"' SAY "Die eingestellte Enquire-Antwort lautet: "||value Siehe auch: ZocGetProgramOption, ZocSetSessionOption, ZocSetProgramOption | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocGlobalStore(<unterkommando>[, <options>]) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Diese Gruppe von Befehlen erlaubt es, Werte über das Schließen und Neustarten von ZOC hinweg permanent zu speichern. Hierzu dient intern eine Datei als Datenpool. Die möglichen Operationen basieren auf den folgenden Unterbefehlen:
CALL ZocGlobalStore "SELECT", "PermStore"
x= ZocGlobalStore("GET", "LASTX") … CALL ZocGlobalStore "SET", "LASTX", x ret= ZocGlobalStore("SET", "VAL", "OK") IF ret\="##OK##" THEN SAY "Could not set value" | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocKeyboard(<befehl>[, <timeout>]) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Diese Funktion erlaubt es einem REXX-Skript, Tastatureingaben in das Terminalfenster abzufragen. Es existieren die Unterbefehle LOCK, UNLOCK und GETNEXTKEY.
Beispiel:
CALL ZocKeyboard "UNLOCK"
ret= ZocKeyboard("GETNEXTKEY") PARSE VALUE ret WITH hexkey"|"scan"|"shift"|"ctrl"|"alt key= X2C(hexkey) SAY "Sie haben folgende Taste gedrückt hex/key: "hexkey"/"key SAY "Scan Code: "scan SAY "Shift/Ctrl/Alt Status: "shift"/"ctrl"/"alt | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocLastLine() | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Diese Funktion liefert die aktuelle Textzeile, die beim letzten
ZocWait/ZocWaitMux/ZocWaitLine Befehl aufgelaufen ist (eine Alternative
zu ZocLastLine ist die Funktion ZocReceiveBuf).
CALL ZocSend "ATZ^M"
timeout= ZocWaitMux("OK", "ERROR") IF (timeout\=640) THEN DO IF ZocLastLine()\="OK" THEN SIGNAL error CALL ZocConnect "555 3456" END Hinweis: In vielen Fällen wird stattdessen die Verwendung ZocReceiveBuf die flexiblere Lösung darstellen. Siehe auch: Das Beispiel bei ZocWaitLine | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocListFiles(<verz\maske> [, <trennzeichen>]) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Die ZocListFiles Funktion liefert die Namen der Dateien, die in einem Verzeichnis gespeichert sind, entsprechend einer Maske aus DOS Jokerzeichen (z.B. "c:\data\*.*"). Die Funktion liefert eine Zeichenkette, die die Anzahl der Dateien und die einzelnen Dateinamen, jeweils durch ein Leerzeichen getrennt, enthält, z.B. "3 download.zip sales.txt foobar.fil". Dann kann mit Hilfe der REXX WORD Funktion einfach auf die einzelnen Namen zugegriffen werden (siehe Beispiel).
Falls Dateinamen selbst Leerzeichen enthalten, kann ein anderes Trennzeichen für
die Liste der Dateinamen benutzt werden, z.B. würde die Funktion mit Trennzeichen "|"
das Ergebnis "3 download.zip|sales.txt|foobar.fil" liefern.
In diesem Fall kann die Zerlegung dann durch die Funktion
ZocString("PART", purelist, i, "|") erfolgen.
files= ZocListFiles("C:\TEMP\*")
howmany= WORD(files, 1) SAY "Anz. Dateien:" howmany purelist= SUBSTR(files, LENGTH(howmany)+2) DO i=1 TO howmany SAY "Datei " i "=" WORD(purelist, i) END Siehe auch: ZocFilename, ZocGetFilename, ZocGetFilenames, ZocGetFolderName, ZocString | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocLoadKeyboardProfile [<keyfile>] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lädt und aktiviert ein Tastaturprofil aus der entsprechenden Datei (*.zky).
CALL ZocLoadKeyboardProfile "Alternate.zky"
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocLoadSessionProfile <optsdatei> | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lädt und aktiviert ein Verbindungsprofilprofil aus der entsprechenden Datei (*.zoc).
CALL ZocLoadSessionProfile "vt102opt.zoc"
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocLoadTranslationProfile [<keyfile>] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lädt und aktiviert ein Zeichenübersetzungstabelle aus der entsprechenden Datei (*.ztr).
CALL ZocLoadTranslationProfile "7bitGerman.ztr"
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocMath(<funktion>, <argument>[, <argument2>]) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocMath berechnet die mathematische Funktion des zweiten Arguments.
Gültige Funktionen sind
sin, cos, tan,
asin, acos,
sqrt,
todeg, torad,
bitand, bitor, bitxor.
angle = 270
anglerad = ZocMath("torad", angle) sinresult = ZocMath("sin", anglerad) lowbits = ZocMath("bitand", 175, 15) hibits = ZocMath("bitand", X2D(A5), X2D(F0)) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocMenuEvent <menütext> [, <datei>] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Führt einen Befehl aus dem ZOC-Menü aus. Der <menütext> ist der
Text wie im ZOC-Menü angezeigt, <datei> ist ein optionaler Dateiname,
den manche Menübefehle übernehmen, statt den Benutzer nach einer
Datei zu fragen.
CALL ZocMenuEvent "Einfügen (kein Zeilenwechsel)"
CALL ZocMenuEvent "REXX Skript bearbeiten", "test.zrx" | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocMessageBox(<text> [, <modus>]) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Öffnet ein Nachrichtenfenster mit dem angegebenen Text (^M im Text erzeugt einen Zeilenwechsel). Normalerweise wird ein Info-Fenster mit einem OK-Knopf (Modus 0) angezeigt. Modus 1 zeigt ein Fehler-Fenster mit einem OK-Knopf. Modus 2 zeigt eine Nachricht mit einem JA und NEIN-Knopf.
Der Rückgabewert ist entweder ##OK##, ##YES## oder
##NO##.
CALL ZocMessageBox "Verbindung fehlgeschlagen!", 1
ret= ZocMessageBox("Fehler beim Speichern.^M^MNochmal versuchen?", 2) IF ret=="##YES##" THEN DO … END Siehe auch: ZocAsk, ZocDialog, ZocAskFilename, ZocAskFoldername, ZocRequest, ZocRequestList | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocNotify <text> [, <dauer>] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Zeigt eine Nachricht in einem kleinen Infofester in der Mitte des Bildschirms an.
Der zweite Parameter bestimmt ggf. die Zeit die das Fenster sichtbar ist
(in Millisekunden).
CALL ZocNotify "Hello World!", 1500
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocPlaySound <datei> | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Spielt eine .WAV Datei ab.
CALL ZocPlaySound "dingdong.wav"
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocReceiveBuf(<puffergröße>) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Diese Funktion sammelt Teile der während einer Verbindung empfangenen Daten in einem Puffer und liefert den vorherigen Inhalt (falls vorhanden) als Zeichenkette zurück. Normalerweise hat der Puffer die Größe Null, d.h. es werden keine Daten gesammelt. Um eine Datensammlung zu starten, muss die Funktion mit einer beliebigen Puffergröße aufgerufen werden. Danach werden die empfangenen Daten im Puffer gespeichert, bis entweder der Puffer voll ist oder bis die Funktion das nächste Mal aufgerufen wird. Der Folgeaufruf liefert den Pufferinhalt, löscht ihn und setzt ihn auf eine neue Größe.
Eine Aufrufsequenz der Funktion ZocReveiceBuf() am Beispiel
einer Datenbankabfrage könnte etwa so aussehen:
/* Puffergröße auf 256 Byte setzen */
CALL ZocTimeout 60 CALL ZocReceiveBuf 256 CALL ZocSend "lesen inhalt^M" CALL ZocWait "Eingabe>" /* die empfangenen Daten in Variable 'inhalt' schieben */ /* und den Puffer für Detail neu initialisieren */ inhalt= ZOCRECEIVEBUF(4096) CALL ZocSend "lesen detail^M" CALL ZocWait "Eingabe>" /* die empfangenen Daten in Varaible 'detail' speichern */ /* und den Puffer auf Null setzen */ detail= ZocReceiveBuf(0) /* Hinweis: An diesem Punkt beginnen beide Zeichenketten (inhalt und detail) immer mit dem Wort "lesen" und enden mit den Zeichen "Eingabe>". */ Beispiel:
/* Remote-Umgebungsvariablen lesen und den TERM= Wert extrahieren */
Call ZocReceiveBuf 2048 Call ZocSend "set^M" /* auf das aktuelle (!) Prompt warten */ Call ZocWait "PROMPT: ~username$" data= ZocReceiveBuf(0) /* Google kennt weitere Details zu "REXX PARSE COMMAND" und den PARSE-Befehl, der hier zum Extrahieren der Daten verwendet wird */ PARSE VALUE data WITH ."TERM="term . SAY "Der TERM Wert der Gegenstelle ist " term Hinweis: Per DDE muss der Befehl unbedingt per DdeRequest und nicht per DdeExecute ausgeführt werden. Siehe auch: ZocLastLine, ZocWait, ZocWaitLine, ZocWaitForSeq, ZocString("LINE" …) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocRegistry(<befehl>[, <options>]) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Diese Gruppe von Funktionen erlaubt den Zugriff auf die Windows-Registry.
Beispiel:
hk= ZocRegistry("OPEN", "HKEY_CURRENT_USER", "Software\Emtec\ZOC8")
if hk=="##ERROR##" THEN EXIT CALL ZocRegistry "WRITE", hk, "Test01", "Hello World" CALL ZocRegistry "WRITE", hk, "Test02", "DWORD:1" CALL ZocRegistry "WRITE", hk, "Test03", "BINARY:5A4F43" SAY ZocRegistry("TEST", hk, "%ZOC%") homepath= ZocRegistry("READ", hk, "%ZOC%"); SAY "ZOC installed in "||homepath i= 0 DO FOREVER x= ZocRegistry("ENUM", hk, i); if x=="##ERROR##" THEN LEAVE i= i+1 SAY x END CALL ZocRegistry "CLOSE", hk EXIT | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocRequest(<titel>, <opt1> [, <opt2> [, <opt3>]]) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Öffnet einen Dialog mit mehreren Knöpfen und liefert eine Zeichenkette mit
dem Namen des ausgewählten Knopfes zurück.
answer= ZocRequest("Was möchten Sie?", "Milch", "Honig")
IF answer=="Milch" THEN DO … END Siehe auch: ZocAsk, ZocDialog, ZocAskFilename, ZocRequestList | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocRequestList(<title>, <opt1> [, …]]) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Öffnet ein Fenster mit einer Liste von Werten und gibt den
Index der Auswahl (oder -1 für Abbruch) zurück. Falls nur eine
Option übergeben wird, wird diese als Liste von Optionen, die durch
senkrechte Striche getrennt sind, interpretiert.
answer= ZocRequestList("Bitte wählen!", "Bier", "Wein", "Whiskey", "Schnaps")
IF answer=3 THEN DO … END answer= ZocRequestList("Bitte wählen!", "Bier|Wein|Whiskey|Schnaps") IF answer=3 THEN DO … END Siehe auch: ZocAsk, ZocDialog, ZocAskFilename, ZocRequest, ZocRequestList | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocRespond <text1> [, <text2>] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Sendet automatisch text2, wenn während der Bearbeitung von ZocDelay oder ZocWait Befehlen der Text text1 empfangen wird. Maximal 64 ZocRespond Befehle können zur gleichen Zeit aktiv sein. <text1> darf weder CR noch LF enthalten.
Wird nur text1 angegeben und kein zweiter Parameter, oder ist der zweite
Parameter leer, so wird ein bestehender ZocRespond für text1 gelöscht. Wenn
text1 leer ist (""), werden alle ZocRespond Einträge gelöscht.
/* Auf 'Befehl' warten und alle Abfragen dazwischen mit Enter bestätigen */
CALL ZocRespond "Enter", "^M" CALL ZocRespond "Mehr", "^M" timeout= ZocWait("Eingabe>") /* Responder löschen */ CALL ZocRespond "Enter" CALL ZocRespond "Mehr" Das obige Beispiel wartet, bis der Text Eingabe> empfangen wird. Während der Wartezeit werden alle Enter und Mehr Abfragen automatisch mit Enter beantwortet. Nach dem Empfang von "Befehl" werden die Respond-Befehle wieder gelöscht. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocSaveSessionProfile [<dateiname>] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Speichert die aktuellen Einstellungen des Verbindungsprofils (siehe
Optionen→Verbindungsprofil) in einer Datei. Wenn kein
Dateiname angegeben wird, öffnet ZOC ein Dateiauswahlfenster.
CALL ZocSetSessionOption "JumpScroll=3"
CALL ZocSaveSessionProfile "Fastscroll.zoc" | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocSend <text> | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Sendet den angegebenen Text zur Gegenstelle. Die Zeichen werden hierzu programmintern wie eine Folge von Tastendrücken verarbeitet. Die Verzögerung hierbei wird durch die Text-Sende Optionen in Optionen→Verbindungsprofil→Text Senden gesteuert. Falls Sie schnelleren direkteren Versand der Daten benötigen, können Sie ZocSendRaw benutzen. Außerdem werden in nahezu allen Emulationen wie ^M automatisch in die üblichen echten Werte umgewandelt (siehe Steuerzeichen). Ausnahmen sind die TN3270/5250 Emulationen, dort gilt ^M als Newline/FieldExit, ^I als Tab und ^Z als Datenfreigabe/Enter.
CALL ZocSend "JOE USER^M" /* send JOE USER<enter>*/
Beispiel:
/* Unix login Sequence */
CALL ZocWait "login:" CALL ZocSend "harry^M" CALL ZocWait "password:" CALL ZocSend "alohomora^M" Beispiel:
/* 3270/5250 example */
Call ZocSetCursorPos 12,4 CALL ZocSend "Freddie" CALL ZocSendEmulationKey "NewLine" CALL ZocSend "Elm Street" CALL ZocSendEmulationKey "Enter" /* 3270/5250 same as above, using emulation specific control codes */ CALL ZocSend "Freddie^MElm Street^Z" | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocSendEmulationKey <tastenbezeichnung> | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Simuliert das Drücken einer Sondertaste der Emulation, z.B. senden der Taste F17 der VT220 Emulation oder senden der Attn unter TN3270. Erlaubte Werte und deren tatsächliche Funktion hängen von der momentan aktiven Terminalemulation ab.
Die Tastenbezeichnungen selbst sind im Anhang unter
Tastenbezeichnungen nach Emulation
gruppiert aufgelistet.
CALL ZocSetEmulation "VT100"
CALL ZocSendEmulationKey "PF1" | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocSendRaw <daten> | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Dieses Kommando verschickt die angegeben Daten ohne sie irgendwie zu interpretieren (d.h. ohne sie z.B. auf Steuercodes wie ^M zu untersuchen). Für die Umwandlung von Steuercodes müssen stattdessen die REXX Zeichenkettenfunktionen wie z.B. X2C(0D) oder ZocCtrlString("^M") verwendet werden.
Mit ZocSendRaw können daher jegliche binäre Daten verschickt werden,
z.B. hex 42 01 00 05 41 43.
CALL ZocSendRaw "Login"||X2C(0d) /* Login<enter> */
/* Dreimal das gleiche Ergebnis: */ CALL ZocSendRaw X2C(420100054143) CALL ZocSendRaw "B"||X2C(01)||X2C(00)||X2C(05)||"AC" CALL ZocSendRaw ZocCtrlString("B^A^@^EAC") Siehe auch: ZocSend, ZocSendEmulationKey, ZocCtrlString | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocSessionTab(<unterkommando>, <parameter>) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Diese Funktion erlaubt es, die Registerblätter mit Verbindungen zu manipulieren. Der <unterkommando> Parameter legt die durchzuführende Operation fest, die weiteren Parameter hängen vom Unterkommando ab:
Beispiel:
/* ZocSessionTab sample: send a text to all tabs */
text= ZocAsk("Command to send to all other tabs:") IF text\="##CANCEL##" THEN DO n= ZocSessionTabs("GETCOUNT") c= ZocSessionTabs("GETCURRENTINDEX") SAY n DO i=0 TO n-1 IF i==c THEN ITERATE name= ZocSessionTabs("GETNAME", i) CALL ZocSessionTabs "SEND", i, text||"^M" SAY "Sent "||text||" to "||name END END | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocSetAuditLogname <dateiname> | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Legt den Namen für die Audit-Logdatei fest. Das Audit-Log ist ein Protokoll der Kommunikation, das nicht vom Benutzer abgeschaltet werden kann; siehe auch den Eintrag in der ADMIN.INI Datei.
Mit "" (leere Zeichenkette) als Dateiname wird die Protokollierung
deaktiviert.
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocSetAutoAccept 1|0 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Schaltet die automatische Annahme von eingehenden Verbindungen ein oder aus,
vorausgesetzt die aktive Kommunikationsmethode unterstützt dies.
CALL ZocSetDevice "Telnet"
CALL ZocSetAutoAccept 1 /* accept calls */ | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocSetCursorPos <zeile>, <spalte> | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Dieser Befehl bewegt den Cursor auf dem Bildschirm in einer TN3270 Emulation an
die angegebene Zeile und Spalte (die Position links oben hat die Adresse 1/1).
CALL ZocSetCursorPos 1,15
Call ZocSendEmulationKey "Enter" | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocSetDevice <name> [,<verbindungstyp-parameter>] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Wechselt die Verbindungsmethode (Verbindungstyp). Als Name kann eine der in Verbindungsprofil→Verbindungstyp verfügbaren Methoden angegeben werden.
Der optionale Verbindungstyp-Parameter
ist ein Text, der die Einstellungen enthält, mit denen der Verbindungstyp geöffnet
werden soll, z.B. bei Telnet die CR/NUL Einstellungen, usw. Die Funktion
ZocSetDeviceOpts beschreibt, wie gültige Verbindungstyp-Parameter
abgefragt werden können. Falls keine Parameter angegeben werden,
werden die in der Methode eingestellten Optionen des momentan aktiven
Verbindungsprofils verwendet.
CALL ZocSetDevice "TELNET"
CALL ZocConnect "bbs.channel1.com" Beispiel:
CALL ZocSetDevice "SERIAL/MODEM", "[1]COM3:57600-8N1|9|350"
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocSetDeviceOpts <parameter-string> | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Dies ist eine sehr fortgeschrittene Funktion, die erlaubt, Einstellungen für die Verbindungsmethode (Verbindungstyp) direkt von REXX aus zu ändern. Allerdings ist der Parametertext für Verbindungsmethoden nicht standardisiert, d.h. um den entsprechenden Parametertext zu finden, müssen die entsprechenden Optionen zunächst manuell im Dialog eingestellt und der den Optionen entsprechende Parametertext dann abgefragt werden. Angenommen, es soll eine Modem-Verbindung auf COM3, mit 57600 Baud, RTS/CTS, gültigem Carrier und einer Break-Zeit von 350ms gestartet werden.
1. Nach Optionen→Verbindungsprofil→Verbindungstyp gehen und unter Serial/Modem
diese Option einstellen
/* Serielle Parameters setzen:
COM3, 57600-8N1, RTS/CTS, Valid-CD, 350ms-Break */ CALL ZocSetDeviceOpts "[1]COM3:57600-8N1|9|350" Beispiel:
/* Telnet auswählen und Optionen auf
"Mit lokalem echo starten" setzen */ CALL ZocSetDevice "TELNET" CALL ZocSetDeviceOpts "[3]12" | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocSetEmulation <emulationname>[, <emuparm-string>] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Mit dem Befehl ZocSetEmulation kann skriptgesteuert eine andere Emulation
aktiviert werden. Als Parameter kommen alle Namen in Frage, die im Verbindungsprofil
als Emulation angezeigt werden, z.B. VT220, TN3270, etc.
CALL ZocSetEmulation "Xterm"
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocSetHostEntry "name", "<schlüsselwort>=<wert>" | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Setzt einen neuen Wert in einen Adressbucheintrag. Alle möglichen
Kombinationen für die Schlüsselworte können Sie sehen, wenn Sie
die Datei HostDirectory.zhd im ZOC Datenordner in einen
Editor laden.
CALL ZocSetHostEntry "ZOC-Support-Mailbox", "emulation=1"
pair= ZocSetHostEntry("ZOC-Support-Mailbox", "calls") PARSE VALUE pair WITH key"="value value= value+1 CALL ZocSetHostEntry "ZOC-Support-Mailbox", "calls="||value /* Hinweis: Anführungszeichen unten beachten! */ value= "3781302" CALL ZocSetHostEntry "ZOC Support BBS", 'connectto="3781302"' CALL ZocSetHostEntry "ZOC Support BBS", 'connectto="'||value||'"' Beispiel:
name= "My Router"
Call ZocSetHostEntry name, "##NEW##" Call ZocSetHostEntry name, 'connectto="192.168.1.1"' Call ZocSetHostEntry name, 'username="root"' Call ZocSetHostEntry name, "deviceid=9" Call ZocSetHostEntry name, "emulationid=3" Siehe auch: ZocSetSessionOption, ZocGetHostEntry | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocSetLogfileName <name> | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Ändert den Namen der Logdatei für die aktuelle Session.
CALL ZocSetLogfileName "Heute.log"
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocSetLogging 0|1 [, 1] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Schaltet die Protokollierung der eingehenden Daten in einer Datei ein oder aus.
Wenn ein zweiter Parameter mit Wert 1 angegeben wird, wird das kleine
Statusfenster in der Mitte des Bildschirms unterdrückt.
CALL ZocSetLogging 1
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocSetMode <key>, <wert> | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Dieser Befehl erlaubt es bestimmte Verarbeitungen im REXX Prozessor zu beeinflussen. Folgende key-Werte werden unterstützt:
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocSetProgramOption "<schlüsselwort>=<wert>" | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Dieser Befehl ändert eine Einstellung aus dem Fenster Optionen→Programmeinstellungen
von ZOC (ZocSetSessionOption verändert stattdessen eine Einstellung aus einem Verbindungsprofil).
Die Funktion arbeitet wie ZocSetSessionOption, allerdings basiert sie auf Wertepaaren aus
der Datei Standard.zfg. Die Schlüsselnamen dort sind auch im wesentlichen selbsterklärend oder
sie können die Funktion zur Aufzeichnung eines REXX-Scripts aktivieren, die Änderung in den Programmeinstellungen
vornehmen und sich dann das aufgezeichnete Skript ansehen..
CALL ZocSetProgramOption "SafAskClrCapt=yes"
CALL ZocSetProgramOption 'SkriptPath="ZocREXX"' /* Anführungszeichen beachten */ CALL ZocSetProgramOption 'SkriptPath="'||pathvar||'"' /* Anführungszeichen beachten */ Siehe auch: ZocCommand("SAVEPROGRAMSETTINGS"), ZocGetProgramOption, ZocGetSessionOption, ZocSetSessionOption | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocSetSessionOption "<schlüsselwort>=<wert>" | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Setzt eine beliebige ZOC-Option aus dem Fenster Optionen→Verbindungsprofil anhand eines Schlüsselwort-Wert Paares. Die möglichen Wertepaare sind in der Datei Standard.zoc (und allen anderen Verbindungsprofildateien) enthalten und stellen die jeweilige Konfiguration dar.
Um herauszufinden, welche Option zu welchem Schlüsselwort gehört, genügt
es, die entsprechenden Einstellungen in Verbindungsprofildialog von ZOC vorzunehmen,
abzuspeichern und die veränderte Schlüsselwort-Wert Zeile zu suchen. Alternativ können
Sie auch die Funktion zur Aufzeichnung eines REXX-Scripts aktivieren, die Änderung am
Verbindungsprofil vornehmen und sich dann das aufgezeichnete Skript ansehen.
CALL ZocSetSessionOption "Beep=no"
CALL ZocSetSessionOption "JumpScroll=3" CALL ZocSetSessionOption "ShowChat=no" CALL ZocSetSessionOption 'MdmIni="ATZ^M"' /* Anführungszeichen beachten */ CALL ZocSetSessionOption 'TransAutoRemove="'||valvar||'"' /* Anführungszeichen beachten */ Hinweis: ZocSetSessionOption/ZocGetSessionOption funktioniert nur für Optionen aus Optionen→Verbindungsprofil. Einträge aus den Programmeinstellungen können stattdessen mit ZocSetProgramOption bearbeitet werden. Siehe auch: ZocCommand("SAVESESSIONPROFILE"), ZocSaveSessionProfile, ZocGetProgramOption, ZocSetProgramOption, ZocGetSessionOption | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocSetTimer <hh:mm:ss> | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Setzt den Timer auf den angegebenen Wert. Mit einer leeren Zeichenkette als
Parameter, wird als Ergebnis die Zeit des Timers in Sekunden zurückgeliefert.
Ein Aufruf der Funktion mit Parameter "STOP" hält den Timer an und
"RESUME" zählt einen angehaltenen Timer weiter.
CALL ZocSetTimer "00:00:20"
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocSetUnattended 0|1 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Schaltet den Modus für unbeaufsichtigten Betrieb ein oder aus
(siehe Kommandozeilen-Parameter /U).
CALL ZocSetUnattended 1
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocShell <befehl>, [<anzeigemodus>] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Führt ein Programm per cmd.exe /c <command> (Windows) oder /bin/bash -c "<command>" (macOS). Dieser Befehl ist ähnlich dem REXX-Befehl ADDRESS CMD "<befehl>" und erlaubt im Prinzip die Ausführung eines jeden Befehls, der auch im Shell-Fenster des Betriebssystems eingegeben werden kann.
Der optionale Parameter für den Anzeigemodus steuert, wie das zugehörige schwarze Shell-Fenster (nur Windows)
angezeigt werden soll:
CALL ZocShell "DEL FILE.TMP"
CALL ZocShell "touch /tmp/file.lck", 1 Siehe auch: ZocShellExec, ZocShellOpen, ZocFileDelete, ZocFileRename | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocShellExec <command> [, <viewmode>] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Übergibt ein Programm zur direkten Ausführung an das Betriebssystem (d.h. ohne den Interpreter des schwarze Shell-Fensters). Dies funktioniert unter Windows nur für .exe und .com Programme, nicht jedoch für .cmd-Dateien und interne Befehle wie DIR, REN, DEL, etc. (hierfür kann alternativ ZocShell verwendet werden).
Der optionale Anzeige-Parameter steuert, wie das Fenster des Programms
angezeigt werden soll:
CALL ZocShellExec 'notepad.exe "neuer.txt"'
Siehe auch: ZocShell, ZocShellOpen | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocShellOpen <dateiname> | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Übergibt eine Datei zum Öffnen an das Betriebssystem. Diese Funktion entspricht in etwa dem Doppelklick auf einer Datei und öffnet die Datei mit dem Programm, das im Betriebssystem für diesen Dateityp registriert ist (z.B. einen PDF-Viewer für PDF-Dateien oder Notepad für TXT-Dateien).
Alternativ kann statt eines Dateinamens auch ein URL angegeben werden.
CALL ZocShellOpen 'C:\DOWNLOADS\Report.pdf'
Beispiel:
CALL ZocShellOpen 'https://www.emtec.com/'
Siehe auch: ZocShell, ZocShellExec | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocString(<unterkommando>, <inputstring>, <p1> [, <p2>]) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Diese Funktion bearbeitet oder analysiert Zeichenketten entsprechend des Unterkommandos sowie der weiteren Parameter und liefert ein darauf basierendes Ergebnis zurück. Unterkommandos:
Beispiel:
CALL ZocReceiveBuf 1024
CALL ZocSend "ps -a^M" CALL ZocWait "$" /* prompt after command output */ data= ZocReceiveBuf(0) /* Anzeige der Befehlsausgabe Zeile fuer Zeile (jedoch ohne das Echo in der die ersten) */ howmany= ZocString("LINECOUNT", data) DO i=2 TO howmany SAY ZocString("LINE", data, i) END Beispiel:
key= "Secret.740.$%&"
n= ZocString("AES256-ENCRYPT", key, "Hello World!") SAY "Encoded: "||n n2= ZocString("AES256-DECRYPT", key, n) SAY "Decoded: "||n2 Siehe auch: ZocCtrlString | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocSuppressOutput 0|1 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Schaltet die Unterdrückung der Bildschirmausgabe ein oder aus. Dieser Befehl erlaubt das Senden/Empfangen von Daten ohne Bildschirmausgabe. Das Mitprotokollieren in den Puffer sowie in die Logdatei wird ebenfalls unterdrückt.
Das Unterdrücken der Bildschirmausgabe wird automatisch zurückgesetzt,
wenn das Skript oder die Verbindung beendet ist. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocSyncTime <ms> | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Da REXX in einem eigenen Thread ausgeführt wird, kann es vorkommen, dass eingehende Daten schneller ankommen als sie vom REXX-Programm verarbeitet werden können, d.h. es ist möglich, dass Text, auf den ein REXX-Programm wartet, von ZOC bereits empfangen wurde, bevor REXX den ZocWait Befehl erreicht.
Ein typisches Beispiel für diese Problematik ist eine Schleife, um alle
ankommenden Textzeilen anzuzeigen.
DO FOREVER
timeout= ZocWaitLine() IF timeout\=640 THEN DO zeile= ZocLastLine() /* Zeile wird hier verarbeitet */ END END Im obigen Beispiel empfängt ZOC möglicherweise bereits wieder Text, während das REXX-Programm die Zeile noch verarbeitet und noch bevor es bereit ist für den nächste ZocWaitLine Befehl. Um das zu verhindern, wartet ZOC nach gefundenem Text bis eine definierte Zeit (die Sync-Zeit) verstrichen ist, oder bis REXX ein weiteres Kommando ausführt das mit dem Hauptfenster interagiert (z.B. ZocSend, ZocWait, etc. sowie auch SAY, TRACE usw. weil auch diese in dem Hauptfenster Ausgaben machen).
Sollten diese 250ms zu kurz für das jeweilige REXX-Programm sein, kann
diese Wartezeit mit ZocSynctime erhöht werden. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocTerminate [<return-code>] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Schließt das Fenster und beendet ZOC nachdem das REXX-Programm vollständig ausgeführt und beendet wurde. Normalerweise folgt dem Befehl ZocTerminate deshalb der REXX-Befehl EXIT.
Wenn der Return-Code Parameter angegeben wird, gibt ZOC
diesen Wert an das Betriebssystem oder an das aufrufende Programm zurück.
CALL ZocTerminate
EXIT | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocTimeout <sek> | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Setzt die Timeout-Zeit für ZocWait/ZocWaitMux/ZocWaitLine/ZocEventSemaphore.
/* ZocWait warted max. 30 Sek. auf Ergebnis und gibt danach auf */
CALL ZocTimeout 30 /* Warte bis Gegenstelle 'ready' sendet, oder bis die max. Timeout-Zeit erreicht ist */ ret= ZocWait("ready") IF ret\=640 THEN SAY "Gegenstelle bereit!" ELSE SAY "System war nicht innerhalb 30 Sek. bereit" Siehe auch: ZocWait, ZocWaitIdle, ZocWaitLine, ZocWaitMux, ZocEventSemaphore, ZocSyncTime | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocUpload <protokoll>[:<optionen>], <dateiname> | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Startet den Upload der Datei mit dem angegebenen File-Transfer Protokoll. Enthält <dateiname> keinen Pfad, wird die Datei aus dem Upload-Ordner bzw. Text-Upload-Ordner gelesen. Ist der Pfad relativ, basiert er auf dem Programmverzeichnis von ZOC oder auf dem Upload-Ordner. Bei Transferprotokollen die die Übertragung mehrerer Dateien erlauben (Ymodem, Zmodem), kann der Parameter für den Dateinamen auch Namensmuster enthalten. Außerdem können mehrere Dateiname angegeben werden, indem die Namen durch das Pipe-Symbol (vertikaler Strich) getrennt werden: *.pdf|somefile.txt Der Protokollname ist ASCII, BINARY oder einer der unter Optionen→Verbindungsprofil→Dateitransfer aufgeführten Protokolle, z.B. Zmodem oder Kermit.
Je nach Erfolg des Transfers, wird ##OK## oder ##ERROR## zurückgeliefert.
CALL ZocUpload "ZMODEM", "ZOCBBS.REP"
sendet ZOCBBS.REP aus dem Upload-Ordner per Zmodem-Protokoll an die Gegenstelle.
Beispiel:
success= ZocUpload("XMODEM", "ZOC.ZIP")
sendet ZOC.ZIP (aus dem Uploadpfad) per Xmodem-Protokoll und fragt den
Rückgabewert (##OK## oder ##ERROR##) ab.
Beispiel:
CALL ZocUpload "ASCII", "commands.txt" sendet die Datei
commands.txt mit den momentan im Verbindungsprofil definierten Einstellungen
für den Text-Transfer.
Beispiel:
CALL ZocUpload "ASCII:CRONLY+10", "\FAR\AWAY\LIST.TXT"
sendet LIST.TXT per ASCII-Transfer mit Zeilenende nur-CR und einer
ASCII-Verzögerung von 10 ms.
Beispiel:
CALL ZocUpload "ASCII:1+3", "HERE\SOME.DATA"
sendet die Datei SOME.DATA per ASCII-Transfer mit CR/LF-Übersetzung und
einer ASCII-Verzögerung von 3ms.
Beispiel:
CALL ZocUpload "BINARY", "CNC-CONTROL.DAT"
überträgt den Inhalt der Datei ohne Umsetzung oder Übertragungsprotokoll.
Beispiel: Es soll ein Xmodem-Transfer mit CRC und 1KB-Blöcken
eingestellt werden. Hierzu gehen Sie folgendermaßen vor:
Transfer Optionen ASCII
Transfer Optionen BINARY
Transfer Optionen IND$FILE | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocWait(<text>) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Wartet auf den angegebenen Text. Bei Timeout-Überschreitung
(siehe ZocTimeout) wird der Wert 640 zurückgeliefert.
CALL ZocTimeout 20
timeout= ZocWait("Passwort") IF timeout=640 THEN SAY "Keine Passwort-Aufforderung innerhalb 20 Sek" ELSE CALL ZocSend "geheim^M" Beispiel:
CALL ZocTimeout 10
timeout= ZocWait("Befehl eingeben>") IF timeout=640 THEN SIGNAL the_end CALL ZocSend "FIREWALL AKTIVIEREN^M" timeout= ZocWait("Befehl eingeben>") IF timeout=640 THEN SIGNAL the_end CALL ZocSend "IPFILTER AKTIVIEREN^M" timeout= ZocWait("Befehl eingeben>") IF timeout=640 THEN SIGNAL the_end SAY "Firewall und Ip-Filter wurden aktiviert!" the_end: Call ZocDisconnct EXIT Hinweis: Eventuelle Emulations-Steuercodes werden aus dem Datenstrom gefiltert und behindern den ZocWait-Befehl nicht (siehe ZocWaitForSeq). Hinweis: Falls Sie ZocWait von einer DDE Applikation aus aufrufen muss dies via Request und nicht via Execute geschehen. Hinweis: In Verbindung mit den TN3270 und TN5250 Emulationen kann nur auf das Zeichen ^Z gewartet werden, das in diesen Emulationen als Indikator dafür dient, dass das Terminal wieder eingabebereit ist. Siehe auch: ZocTimeout, ZocWaitIdle, ZocWaitLine, ZocWaitMux, ZocSyncTime | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocWaitForSeq 1|0|"on"|"off" | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Normalerweise filtert ZOC Steuercodes für die Terminalemulation aus dem Datenstrom, der für ZocWait verwendet wird. Mit diesem Befehl kann das Warten auf Steuersequenzen ein- oder ausgeschaltet werden.
Dieser Schalter
kontrolliert auch, ob ZocReceiveBuf solche Steuercodes mitprotokolliert
oder nicht.
esc= ZocCtrlString("^[")
/* wait for VT220 color reset */ CALL ZocWaitForSeq "On" Call ZocWait esc||"[0m" Siehe auch: ZocWait, ZocWaiMux, ZocReceiveBuf | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocWaitIdle(<time>) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Dieser Befehl wartet auf eine Übertragungspause der angegebenen Länge, d.h. auf eine
Zeit, in der die Gegenstelle keine Daten sendet. Falls keine solche Pause auftritt
wird der Befehl nach der mit ZocTimeout gesetzten Zeit mit Returnwert 640 abgebrochen.
CALL ZocTimeout 60
timeout= ZocWaitIdle(2.5) IF timeout=640 THEN SAY "Gegenstelle sendete 60 Sek. ständig Daten" ELSE SAY "Endlich Ruhe! (2.5 Sekunden ohne Datenempfang)" Siehe auch: ZocWait, ZocWaitLine, ZocWaitIdle, ZocWaitMux, ZocWaitNumChars, ZocTimeout, ZocSyncTime | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocWaitLine() | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Wartet auf die nächste nichtleere empfangene Zeile (zum Warten auf eine evtl. auch leere Zeile kann EXMLPL(ZocWait "^M") verwendet werden). Der zwischenzeitlich empfangene Text kann über die Funktion ZocLastLine bzw. über ZocReceiveBuf abgefragt werden.
Bei Timeout-Überschreitung liefert ZocWaitLine den Wert 640 zurück.
rc= ZocWaitLine()
IF (rc\=640) & (ZocLastLine()="CONNECT") THEN … Beispiel:
/* Einen befehl schicken, der einige Zeilen an Output produziert */
CALL ZocSend 'dig emtec.com && echo "<<END>>"^M' /* Nun zuerst die Daten komplett sammeln */ n= 0 DO FOREVER timeout= ZocWaitLine() /* Schleifenende wenn keine Daten empfangen */ IF timeout=640 THEN LEAVE line= ZocLastLine() /* Zeile mit Endebedingung gefunden? */ IF line=="<<END>>" THEN LEAVE /* Zeile nur in Array speichern, dann weiter mit nächster */ n= n+1 data.n= line data.0= n END /* Nun im 2ten Durchgang alle Zeilen im Array abarbeiten */ DO i= 1 TO data.0 line= data.i /* 'line' kann hier in Ruhe verarbeitet werden ohne ggf. Daten zu verpassen */ END Siehe auch: ZocWait, ZocWaiMux, ZocWaitIdle, ZocWaitNumChars, ZocTimeout, ZocSyncTime | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocWaitMux(<text0> [, <text1> …]) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Wartet auf einen von mehreren Texten in den Empfangsdaten. Die Bedingung ist
erfüllt, wenn einer der Texte im Empfang gefunden wurde. Die Rückgabewert
gibt Aufschluss darüber, welcher der Texte gefunden wurde (0, 1, 2, …) bzw.
ob ein Timeout aufgetreten ist (640).
CALL ZocTimeout 45
ret= ZocWaitMux("Mail eingetroffen", "Hauptmenü") SELECT WHEN ret=0 THEN CALL handle_maildownload WHEN ret=1 THEN LEAVE OTHERWISE SIGNAL handle_error END Siehe auch: ZocWait, ZocWaitLine, ZocWaitIdle, ZocWaitNumChars, ZocTimeout, ZocSyncTime | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocWaitNumChars(<n>) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Wartet auf eine spezifische Anzahl von empfangenen Zeichen. Es handelt sich hierbei um jede Art von Zeichen, also auch Zeilenwechsel oder Steuerzeichen werden gezählt. Um abzufragen, welche Zeichen empfangen wurden, muss vor dem Aufruf von ZocWaitNumChars ein Empfangspuffer (siehe ZocReceiveBuf) eingerichtet, und dessen Inhalt ausgelesen werden, nachdem ZocWaitNumChars zurückgekehrt ist.
Wenn weniger als die angeforderte Anzahl von Zeichen innerhalb des Timeouts (siehe
ZocTimeout) empfangen wurden, liefert die Funktion den Wert 640 zurück.
CALL ZocTimeout 45
CALL ZocReceiveBuf 100 ret= ZocWaitNumChars(5) IF ret\=640 THEN DO data= ZocReceiveBuf(0) END Siehe auch: ZocReceiveBuf, ZocWait, ZocWaitIdle, ZocWaitLine, ZocTimeout, ZocSyncTime | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocWindowState(MINIMIZE|MAXIMIZE|RESTORE|ACTIVATE|MOVE:x,y|QUERY) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Setzt den Status des Hauptfensters von ZOC auf den übergebenen Status (bzw. verschiebt das Fenster bei MOVE:x,y). Als Funktion aufgerufen wird der neue Fensterstatus zurückgeliefert
Wird als Parametern QUERY übergeben, so wird nur der aktuelle Status
des Fensters (MINIMIZED, MAXIMIZED, RESTORED)
zurückgeliefert (bitte jeweils das D am Ende beachten).
now= ZocWindowState("QUERY")
if now\="MINIMIZED" THEN DO CALL ZocWindowState "MINIMIZE" end | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocWrite <text> | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Schreibt einen Text auf den Bildschirm. Dieser Befehl ist dem REXX-Befehl
SAY sehr ähnlich, im Gegensatz zu SAY wird der Cursor aber nach der Textausgabe
nicht auf die nächste Zeile gesetzt. Außerdem versteht ZocWrite Steuerzeichen
wie ^M (Enter) oder ^[ (ESC).
CALL ZocWrite "Hello ^[[1m World^[[0m"
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ZocWriteln <text> | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Schreibt einen Text auf den Bildschirm und setzt den Cursor auf die nächste
Zeile. Dieser Befehl ist mit SAY identisch, löst aber zusätzlich Steuerzeichen
wie ^M auf.
CALL ZocWriteln "Hello ^M^J World"
SAY "Hello"||X2C(0D)||X2C(0A)||"World" |
Funktionen zur Kompatibilität mit älteren ZOC Versionen |
ZocAutoConnect | |
Ersetzt durch ZocConnectHostdirEntry.
| |
ZocAskP | |
Umbenannt in ZocAskPassword.
| |
ZocGetFilename(s) | |
Umbenannt in ZocAskFilename und ZocAskFilesnames.
| |
ZocGetFolderName | |
Umbenannt in ZocAskFolderName.
| |
ZocBaud | |
Ersetzt durch ZocSetDeviceOpts, z.B.: Call ZocSetDeviceOpts "[1]38400-8N1".
| |
ZocCaptClr | |
Ersetzt durch ZocCommand("CLEARSCROLLBACK").
| |
ZocCarrier | |
Ersetzt durch ZocGetInfo("ONLINE").
| |
ZocCls | |
Umbennant in ZocClearScreen.
| |
ZocCursor | |
Ersetzt durch ZocGetInfo("CURSOR-X") und ZocGetInfo("CURSOR-Y").
| |
ZocDial() | |
Umbenannt in ZocConnect.
| |
ZocEndZoc() | |
Ersetzt durch ZocTerminate.
| |
ZocExec | |
Umbenannt in ZocShellExec.
| |
ZocGetLine | |
Umbenannt in ZocWaitLine.
| |
ZocGetOption | |
Umbenannt in ZocGetSessionOption.
| |
ZocGetPhonebk | |
Umbenannt in ZocGetHostEntry.
| |
ZocGlobal | |
Umbenannt in ZocGlobalStore.
| |
ZocLockKeyboard | |
Ersetzt durch ZocKeyboard("LOCK") und ZocKeyboard("UNLOCK").
| |
ZocLoadOpts | |
Umbenannt in ZocLoadSessionProfile.
| |
ZocLoadKeyfile | |
Umbenannt in ZocLoadKeyboardProfile.
| |
ZocLogging | |
Umbenannt in ZocSetLogging.
| |
ZocLogname | |
Umbenannt in ZocSetLogfileName.
| |
ZocRestimer | |
Ersetzt durch ZocSetTimer("00:00:00").
| |
ZocSaveOpts | |
Ersetzt durch ZocSaveSessionProfile.
| |
ZocScreen | |
Ersetzt durch ZocGetScreen.
| |
ZocSendBreak | |
Ersetzt durch ZocCommand("SENDBREAK").
| |
ZocSendKey <nummer> | |
Bitte verwenden Sie stattdessen ZocGetSessionOption und ZocSend.
| |
ZocSetDevParm | |
Umbenannt in ZocSetDeviceOpts.
| |
ZocSetDlPath | |
Bitte verwenden Sie stattdessen CALL ZocSetProgramOption "DownloadPath=<path>".
| |
ZocSetEmu | |
Bitte verwenden Sie stattdessen CALL ZocSetSessionOption "ActiveEmulation=<emu-id>" oder ZocSetEmulation.
| |
ZocSetHost | |
Bitte verwenden Sie stattdessen CALL ZocSetSessionOption "Host=yes|no".
| |
ZocSetPhonebk | |
Umbenannt in ZocSetHostEntry.
| |
ZocSetOption | |
Umbenannt in ZocSetSessionOption. |
← Zurück zu ANHANG