Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

@PROC (Format 1) - Umschalten von Arbeitsdateien

&pagelevel(3)&pagelevel

Mit diesem Format der @PROC-Anweisung schaltet man in eine andere Arbeitsdatei um. Diese Arbeitsdatei wird damit zur aktuellen Arbeitsdatei.

Operation

Operanden

L-Modus

@PROC

procnr [comment]

procnr

comment

Nummer der Arbeitsdatei (1..22), in die gewechselt werden soll.

Beliebiger Text als Kommentar.

Die Arbeitsdatei, in die durch die Anweisung gewechselt wurde, bleibt solange aktuell bis mit @END in die zuletzt aktuelle Arbeitsdatei zurückgekehrt wird oder mit einem weiteren @PROC oder @SETF(procnr) in eine andere Arbeitsdatei gewechselt wird.

Wenn mit @PROC in eine andere Arbeitsdatei gewechselt wird, merkt sich der EDT die verlassene Arbeitsdatei und ihre Vorgänger (geschachtelte Arbeitsdateien), d.h. mit der @END-Anweisung kommt man in die verlassene(n) Arbeitsdatei(en) zurück. Im Gegensatz dazu wird beim Wechsel der Arbeitsdatei mit @SETF(procnr) vor dem Umschalten in die neue Arbeitsdatei die Schachtelung der Arbeitsdateien aufgehoben, eine anschließende @END-Anweisung führt dann stets in die Arbeitsdatei 0 zurück (sofern man nicht schon mit @SETF in Arbeitsdatei 0 gewechselt hatte). Die Schachtelungstiefe ist auf 22 beschränkt, danach wird die Fehlermeldung EDT4962 ausgegeben.

Gibt man in der @PROC-Anweisung die Nummer der aktuellen Arbeitsdatei an, wird die Anweisung mit der Meldung EDT4909 abgewiesen. Eine aktive Arbeitsdatei kann nicht zur aktuellen Arbeitsdatei werden, beim Versuch wird die Meldung EDT4959 ausgegeben.

Beispiel 1

5.     @PRINT
1.0000 AAAA
2.0000 BBBAADAFD
3.0000 AAA
4.0000 CCCCCCCCCCCCCCCCC
5.     @PROC 6
1.     @ @SET #I6 = LENGTH !
2.     @ @SET #L6 = !
3.     @ @DO 10
4.     @ @DO 12
5.     @ @CREATE #S6: 'ZEILE ',#S12,' IST ',#S10,' ZEICHEN LANG'
6.     @ @PRINT #S6 N
7.     @END ---------------------------------------------------------- (1)
5.     @PROC 10 ------------------------------------------------------ (2)
1.     @ @SET #S10 = CHAR #I6
2.     @ @ON #S10:2-2: DELETE '0'
3.     @ @IF .TRUE. : @GOTO 2
4.     @END
5.     @PROC 12 ------------------------------------------------------ (3)
1.     @ @SET #S12 = CHAR #L6
2.     @END
5.     @DO 6 !=%,$
ZEILE    1.0000 IST  4 ZEICHEN LANG
ZEILE    2.0000 IST  9 ZEICHEN LANG
ZEILE    3.0000 IST  3 ZEICHEN LANG
ZEILE    4.0000 IST  17 ZEICHEN LANG
5.
(1)Es wird in die Arbeitsdatei 0 zurückgeschaltet. Die Arbeitsdatei 6 enthält 6 EDT-Anweisungen, unter anderem ein @DO 10 und ein @DO 12. Zu diesem Zeitpunkt existieren aber diese beiden Arbeitsdateien noch nicht. Demnach würde ein jetzt gegebenes @DO 6 zu einem Fehler führen.
(2)Die Arbeitsdatei 10 wird eingerichtet. Sie enthält eine EDT-Prozedur, die den in #I6 festgehaltenen Wert in #S10 abdruckbar abbildet und führende Nullen löscht.
(3)Die Arbeitsdatei 12 wird eingerichtet. Sie enthält eine EDT-Prozedur, die den Inhalt der Zeilennummervariablen #L6 in #S12 abdruckbar abbildet.


Beispiel 2

1.     @SET #I4 = 1
1.     @PROC #I4 ----------------------------------------------------- (1)
1.     @4.00
4.00   @ @SET #I4 = #I4 + 1 ------------------------------------------ (2)
4.01   @ @IF #I4 > 4 : @GOTO 8
4.02   @ @PROC #I4
4.03   @ @PROC ------------------------------------------------------- (3)
4.04   @ @GOTO 4
4.05   @8.00
8.00   @ @SET #I4 = #I4 - 1
8.01   @ @END -------------------------------------------------------- (4)
8.02   @ @IF #I4 = 2 : @RETURN
8.03   @ @PROC ------------------------------------------------------- (5)
8.04   @ @GOTO 8
8.05   @END
1.     @DO #I4 ------------------------------------------------------- (6)
<02>
<03>
<04>
<03>
<02>
1.
(1)In eine Arbeitsdatei kann auch über eine Ganzzahlvariable umgeschaltet werden. Die Ganzzahl muss zwischen 1 und 22 liegen.
(2)Beim Ausführen der Arbeitsdatei 1 wird in die Arbeitsdateien 2 bis 4 umgeschaltet, wobei die jeweilige Arbeitsdateinummer immer in #I4 übergeben wird.
(3)Mit @PROC wird abgefragt, in welcher Arbeitsdatei man sich befindet. Somit wird beim Ausführen der Arbeitsdatei #I4 an dieser Stelle das jeweilige #I4 protokolliert.
(4)Ein einziges @END wird verwendet, um in allen Fällen wieder in die Arbeitsdatei, die eine Ebene tiefer liegt, zurückzuschalten.
(5)Nach dem Zurückschalten wird wieder gefragt, in welcher Arbeitsdatei man sich befindet. Somit wird eine absteigende Sequenz der Arbeitsdateinummern 3 bis 2 ausgegeben.
(6)Auch der erste Aufruf einer Arbeitsdatei kann über eine Ganzzahlvariable erfolgen.