![]() |
| %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 | |