*&var= | Zuweisung für Prozedurvariable |
*&var1 = [ &var2 | [C|L|X]'string' ] [ .&var3 | .[C|L|X]'string' ] ... |
Der Prozedurvariablen &var1 wird der Wert des nach dem '='-Zeichen angegebenen Ausdrucks zugewiesen. Einer Prozedurvariablen kann auch ein aus zwei numerischen Konstanten oder Variablen gebildeter Rechenausdruck zugewiesen werden. Die Syntax einer derartigen Zuweisung ist weiter unten beschrieben. | |
&var1 | &name [ ( [s] [, l] ) ] | |
Name der Prozedurvariablen, der ein Wert zugewiesen werden soll. | ||
s | wahlweise Angabe der Anfangsspalte ab der der rechts des Gleichheitszeichens angegebene Wert in die Variable &var1 eingetragen wird. ( 1 <= s < 80 ). | |
Falls der Teil der Variablen &var1 links von der Spalte s noch keinen Inhalt besitzt, wird dieser mit Blanks gefüllt. | ||
Standard: s = 1. | ||
l | wahlweise Angabe einer Länge, in der die Zuweisung an die Variable &var1 erfolgen soll. ( 1 <= l <= 80 ). | |
Standard: l = Länge des rechts des Gleichheitszeichens stehenden Ausdrucks. | ||
&var2 | &name [ ( [s] [, l] ) ] | |
Wert einer CFS-Prozedurvariablen oder eines Teilstrings einer Variablen. | ||
&name Name einer CFS-Prozedurvariablen, einer Jobvariablen oder %PTR[0]. | |
Jobvariable: '&(jvname [, s, l])'. Die optionale Angabe einer Spalte und der Länge bewirkt, dass nur der entsprechende Teilaus der Jobvariablen übernommen wird. Standard: Es werden von Spalte 1 an maximal 80 Zeichen aus der Jobvariablen übernommen. | ||
%PTR bezieht sich auf die Stelle, an der bei einer vorausgegangenen Anweisung *IF %OUT=... oder *ON %OUT=... der Trefferstring gefunden wurde. | ||
%PTR(1,l) bezeichnet die Zeichenfolge in der Länge l hinter dem bei %OUT gefundenen Suchstring. Für ein Beispiel zu der Anwendung von %PTR siehe Seite 19-. | ||
%PTR0(1,l) zeigt auf das erste Byte des bei %OUT gefundenen Suchstrings bzw. auf das erste Byte des ersten einer Reihe von mit * verknüpften Suchstrings. | ||
s | wahlweise Angabe der Anfangsspalte für einen Teilstring aus der Prozedurvariablen. ( -80 < s < 80 ). | |
%PTR(s,l) bezeichnet eine Zeichenfolge in der Länge l, die s Stellen hinter dem letzten Byte des letzten bei %OUT gefundenen Suchstrings beginnt. | ||
%PTR(-s,l) bezeichnet eine Zeichenfolge in der Länge l, die s Stellen vor dem letzten Byte des letzten bei %OUT gefundenen Suchstrings beginnt. | ||
Standard: s = 1. | ||
Beispiel: | ||
Zu suchender Text: 123abc---------xyz789
| ||
*IF %OUT='abc'*'xyz'
| ||
*&VAR=%PTR(1,3) --> &VAR='789'
| ||
*&VAR=%PTR(-3,4) --> &VAR='-xyz'
| ||
*&VAR=%PTR0(1,4) --> &VAR='abc-'
| ||
*&VAR=%PTR0(-3,4) --> &VAR='123a'
| ||
l | wahlweise Angabe einer Länge für den Teilstring aus der angegebenen Prozedurvariablen. ( 1 <= l <= 80 ). | |
Standard: l = Länge der Variablen. | ||
[C|L|X]'string' konstante Zeichenfolge. C'string' ist gleichbedeutend mit 'string'. Bei L'string' wird die Zeichenfolge string nicht in Großbuchstaben umgewandelt. Innerhalb der Zeichenfolge vorkommende Hochkommas müssen verdoppelt werden (''). | |
Wird der Variablen ein numerischer Wert zugewiesen, so kann die Angabe der Hochkommas entfallen: *&var=[-]zahl | ||
Beispiel: *&N=1, *&ZAEHLER=-10 | ||
.&var3 | Es können mehrere Teilausdrücke der Art .&var|.'string' aneinandergefügt werden. Vor dem zweiten und allen weiteren Teilausdrücken muß ein Punkt (.) als Trennungszeichen angegeben werden. | |
Hinweise: | |
Als Prozedurvariable &var1 kann auch der Name einer bisher noch nicht vereinbarten Variablen angegeben werden. Die genannte Variable wird dann kreiert und kann in allen folgenden Anweisungen verwendet werden. | |
Eine Prozedurvariable kann auch mit einem Datenausschnitt aus einer Display-Datei versorgt werden. Näheres hierzu siehe Kommandos W (Write) Seite 8- und S,..=W (Suchen mit Wegschreiben) Seite 8-. | |
*&var1 = [ &var2 | wert ] op [ &var3 | wert ] |
Der Prozedurvariablen &var1 wird der Wert des nach dem Zeichen = angegebenen arithmetischen Ausdrucks zugewiesen. | |
&var2 | &var3 Namen von CFS-Prozedurvariablen. | |
wert | numerische Konstante: [-] zahl. | |
op | arithmetischer Verknüpfungsoperator für eine der vier Grundrechenarten: | |
+ | - | * | / | ||
Hinweise: | |
Um komplexe Modifikationen an Prozedurvariablen vorzunehmen, die evtl. in Abhängigkeit von bestimmten Suchbedingungen stehen, kann die Prozeduranweisung *RUN verwendet werden. Näheres hierzu auf Seite 19-. | |
Werden bei arithmetischen Zuweisungen Prozedurvariablen angegeben, so müssen die Variablen numerische Werte enthalten ([-]zahl). Eine Ausnahme bildet lediglich die CFS-interne Variable &DATE (yy-mm-dd). &DATE kann arithmetisch mit +/- und einer Zahl verknüpft werden. Das Ergebnis ist wieder ein Datum. | |
Bei der Division zweier Werte wird das Ergebnis abgerundet. Bei Division durch Null wird an die Variable &var1 kein Ergebnis zurückgegeben (entspricht &var1=''). | |
Beispiele: | |
*&T1='Connection 1: Anwendung '
| |
Die angegebene Zeichenfolge wird der Variablen &T1 als Inhalt zugewiesen. | |
*IF &CON1 = '' &T1 = &T1.' nicht eröffnet'
| |
Falls Connection 1 nicht eröffnet ist (Inhalt der Variablen &CON1 = ''), so wird dem bisherigen Inhalt der Variablen &T1 die Zeichenfolge ' nicht eröffnet' angehängt. | |
*IF &CON1 -= '' &T1 = &T1.&CON1
| |
Falls die interne CFS-Variable &CON1 nicht leer ist (''), d.h. falls die Connection 1 eröffnet ist, wird an den bisherigen Inhalt der Variablen &T1 der Inhalt der Variablen &CON1 angefügt. | |
*&DZ = &DATE(7,2).'.'.&DATE(4,2).'.'.&DATE(1,2).' '
| |
Aus den CFS-internen Variablen &DATE (yy-mm-dd) und &TIME (hhmmss) wird eine neue Variable mit dem Namen &DZ gebildet, die aufgrund des obigen Ausdrucks folgenden Inhalt hat: 'dd.mm.yy hh:mm:ss'. Das gleiche Ergebnis wird auch durch die Anweisung *&DZ=&DATE2.' '.&TIME2 erreicht.
| |
*&ZAEHL=&VAR1+1
| |
Der Variablen &ZAEHL wird der um 1 erhöhte Wert von &VAR1 zugewiesen. | |
*&VAR1=&VAR1-&N
| |
Der Wert der Variablen &VAR1 wird um den Inhalt der Variablen &N vermindert. | |
*&D=&DATE+1
| |
Die Variable &D erhält das morgige Datum als Wert (yy-mm-dd). | |
Für weitere Beispiele für Variablenzuweisungen siehe Seite 20-. | |