%OUT Inhalte der aktuellen Ausgabemaske abfragen
*IF %OUT [(%PTR)] =such  cmd
Die Bedingung *IF %OUT ist erfüllt, wenn der Suchstring in der letzten Ausgabenachricht (z.B. aufgrund eines BS2000-Kommandos) oder Bildschirmmaske enthalten ist. Ist dies der Fall, wird das unter cmd angegebene Kommando ausgeführt. Außerdem wird ein Pointer %PTR auf das Ende des gefundenen Suchstrings in der Ausgabenachricht gesetzt. Der Pointer kann dazu benutzt werden, einen Teilstring der Ausgabenachricht an eine Prozedurvariable zuzuweisen.
such einfaches oder mehrfaches Suchargument der Form
[C]'string| L'string' | A'string' | X'string'
Es ist zu beachten, daß bei Angabe des Suchstrings in der Form C'string' Kleinbuchstaben in string in die entsprechenden Großbuchstaben umgewandelt werden.
Die Angabe 'string' hat dieselbe Wirkung wie A'string' (siehe unten).
Bei Angabe von L'string' bleibt string in der angegebenen Groß-/Kleinschreibung unverändert.
Bei Angabe von A'string' (Any) ist die Schreibweise von string in Klein- oder Großbuchstaben für das Suchergebnis ohne Bedeutung. Sowohl der Suchstring, als auch der zu durchsuchende Text werden vor dem Vergleich in Großbuchstaben umgewandelt.
Hinweise:
Die *IF %OUT-Abfrage kann auch auf die Ausgabenachrichten eines vorausgegangenen /bs2cmd (eingegeben im Kommandofeld von CFS) oder einer vorausgegangenen Prozeduranweisung */bs2cmd angewendet werden. Hierbei ist jedoch zu beachten, daß die Ausgaben des vorhergehenden BS2000-Kommandos nur mit einer *IF %OUT Anweisung abgefragt werden dürfen.
Bei einer vorausgehenden */bs2cmd Prozeduranweisung ist zudem folgende Besonderheit zu berücksichtigen: Mit der nächsten *IF %OUT-Abfrage wird auf die Ausgaben des Kommandos zugegriffen. Danach, d.h. mit der übernächsten und evtl. folgenden *IF-%OUT Abfragen wird wieder auf die letzte Maskenausgabe zugegriffen. Als Dummy-Abfrage könnte z.B. angegeben werden *IF %OUT='' &XXX='xxx'. Nach dieser Anweisung wird mit *IF %OUT wieder auf die Ausgabe der letzten Maske zugegriffen.
Mit der Anweisung *IF %OUT='' wird %PTR auf das Ende der letzten Ausgabenachricht positioniert. Mittels *&VAR=%PTR(-80,80) werden z.B. die letzten 80 Byte der Ausgabenachricht in die Variable &VAR übertragen.
Beispiele:
*IF %OUT=A'search-item found and replaced' &COUNT=%PTR(1,7)
Der Ausdruck (1,7) nach %PTR wird wie bei einer Prozedurvariablen als Offset und Länge für die Zuweisung interpretiert. Mit dem Offset 1 wird die Stelle direkt nach dem letzten Suchitem bezeichnet.
*IF %OUT='ENTRIES IN THIS LIST' &COUNT=%PTR(-6,5)
Mit dem Offset -6 wird die Stelle 6 Byte vor dem Suchitem bezeichnet.
(%PTR) Ausgehend von einer vorhergehenden Anweisung *IF %OUT wird in der Ausgabenachricht ab der Spalte, in der der letzte Suchbegriff gefunden wurde, nach dem in such angegebenen String gesucht.
such einfaches oder mehrfaches Suchargument der Form 'string|  L'string| X'string'. L'string' wirkt wie 'string' mit dem Unterschied, daß eingegebene Kleinbuchstaben nicht in Großbuchstaben umgesetzt werden. Mehrere Suchargumente können durch die Operatoren + (Und) / , (Oder) / * (Wildcard) verknüpft werden.
Eine ausführliche Beschreibung der Suchbedingung finden Sie auf Seite 8- und 8-.
cmd Anweisung der Prozedursprache von CFS. Der normalerweise vor einer Prozeduranweisung stehende Stern darf nicht angegeben werden.
Beispiel:
Mit der folgenden Prozedur wird verhindert, daß der Benutzer mit der K1-Taste in die Selektionsmaske von CFS gelangt. Für eine Beschreibung der ON %OUT-Bedingung siehe Seite 19-.
.ON-IN
*ON %IN=K1 CONTINUE
*DIA
*IF %OUT='FILENAME-SELECT :' SKIP .INPUT-NO
*SKIP .ON-IN
.INPUT-NO
NO
*SKIP .ON-IN