%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 | |