Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

@PRINT - Zeilenbereiche bzw. Inhalte von Zeichenfolgevariablen ausgeben

&pagelevel(3)&pagelevel

Die Anweisung @PRINT gibt den Inhalt der angegebenen Zeilenbereiche bzw. von Zeichenfolgevariablen aus. Im Dialogbetrieb erfolgt die Ausgabe nach SYSOUT, im Stapelbetrieb nach SYSLST.

In den Operandenbeschreibungen wird zur Vereinfachung meist nur von Zeilen bzw. Zeilenbereichen gesprochen. Die Aussagen gelten jedoch auch für Zeichenfolgevariablen bzw. Bereiche von Zeichenfolgevariablen, wenn nicht explizit auf Abweichungen hingewiesen wird.

Operation

Operanden

F-Modus, L-Modus

@PRINT

[ { lines | svars } [:cols[:] ] [X] [N] [S] [ {V | E} ] ] [,...]

lines

svars

cols

Zeilenbereich, der ausgegeben werden soll.

Bereich von Zeilchenfolgevariablen, deren Inhalt ausgegeben werden soll.

Spaltenbereich der Arbeitsdatei oder der Zeichenfolgevariablen, der
ausgegeben werden soll.

Wird nur eine Spaltennummer angegeben, wird ab dieser Spalte der Rest
der Zeile ausgegeben. Ist die erste Spaltenangabe größer als die Zeilenlänge,
wird diese Zeile nicht ausgegeben.

Wird kein Spaltenbereich angegeben, werden die gesamten Zeilen bzw.
Zeichenfolgevariablen ausgegeben, auch wenn sie leer sind

X

Die Ausgabe erfolgt in hexadezimaler Form. Pro Zeichen werden zwei bis
acht Hexadezimalziffern ausgegeben, je nach dem Zeichensatz, der für die
Arbeitsdatei bzw. für die Zeichenfolgevariablen eingestellt ist.

N

Unterdrückt die Zeilennummern bzw. die Bezeichnung der Zeichenfolgevariablen
bei der Ausgabe.

S

Bei Ausgabe auf SYSLST wird normalerweise jede erste Zeile eines Bereiches
mit einem zusätzlichen Zeilenvorschub ausgegeben, wenn die
Ausgabe nicht an einem Seitenanfang erfolgt. Bei Angabe von S wird die
Ausgabe dieser zusätzlichen Leerzeile unterdrückt. Der Operand ist nur im
Stapelbetrieb sinnvoll und wird im Dialogbetrieb ignoriert.

V, E

Die Operanden V bzw. E bewirken im Dialogbetrieb, dass der EDT den
angegebenen Zeilenbereich abschnittsweise (entsprechend der
Bildschirmgröße) ausgibt und gegebenenfalls am Ende eines Abschnitts dem
Benutzer die Möglichkeit zur Eingabe von Blätteranweisungen (siehe
unten) gibt. Aus wie vielen physikalischen Zeilen (Bildschirmzeilen) ein
Abschnitt maximal besteht, hängt von der benutzten Datensichtstation ab.

Die Operanden sind nur beim Arbeiten am Bildschirm sinnvoll und werden
im Stapelbetrieb ignoriert.

Bei Angabe von V (oder wenn durch eine Blätteranweisung auf den
V-Modus umgeschaltet wurde) wird am Ende eines jeden Abschnitts immer
zur Eingabe einer Blätteranweisung aufgefordert.
Nur durch Eingabe von 0 oder durch Wechsel zum E-Modus (siehe unten),
kann die Ausgabe beendet bzw. zum nächsten angegebenen Bereich
übergegangen werden.

Im Gegensatz dazu wird bei Angabe von E (oder wenn durch eine
Blätteranweisung auf den E-Modus umgeschaltet wurde) nur dann am Ende eines
Abschnitts zur Eingabe einer Blätteranweisung aufgefordert, wenn dieser
Abschnitt nicht bereits die letzte Zeile des aktuellen Bereiches enthält.
Enthält der auszugebende Abschnitt die letzte Zeile des aktuellen Bereiches,
wird der Abschnitt ohne Aufforderung zum Blättern ausgegeben,
wenn kein weiterer Bereich folgt oder der nachfolgende Bereich keinen der
Operanden V oder E benutzt.

Wurde ein weiterer Bereich mit Operand V oder E angegeben, so wird der
letzte Abschnitt des aktuellen Bereiches mit dem Beginn des nächsten
Bereiches zu einem Abschnitt zusammengefügt. Das Verhalten am Ende
dieses zusammengefügten Abschnitts bestimmt sich durch den Operanden
V oder E des nächsten Bereiches.

Wird weder V noch E angegeben, wird der komplette Bereich ausgegeben.
Die Ausgabe wird im Dialogbetrieb nur unterbrochen, wenn die
Überlaufkontrolle des Betriebssystems (/MODIFY-TERMINAL-OPTIONS OVERFLOW-
CONTROL=USER-ACKNOWLEDGE) eingeschaltet ist.
Nach der Ausgabeunterbrechung durch %PLEASE ACKNOWLEDGE kann man
durch [K2] und /RESUME-PROGRAM die Ausgabe des Zeilenbereichs abbrechen
oder durch jede andere Eingabe fortsetzen. Weiteres Positionieren ist
hierbei nicht möglich.

Wird kein Operand angegeben, wird die ganze aktuelle Arbeitsdatei abschnittsweise (wie bei Angabe von E) ausgegeben.

Der Inhalt des angegebenen Zeilenbereichs wird zeilenweise mit oder ohne vorangestellte Zeilennummer (siehe Operand N) ausgegeben. Ist SYSOUT im Dialogbetrieb einer Datensichtstation zugewiesen, werden die einzelnen Zeilen durch das Zeichen [LZE] (logisches Zeilenende) voneinander getrennt.
Es können mehrere auszugebende Bereiche mit eigenen Ausgabeoptionen durch Komma getrennt angegeben werden. Die Anzahl der Bereichsangaben ist nur durch die maximal erlaubte Länge einer EDT-Anweisung begrenzt.

Wird die Anweisung mit [K2] unterbrochen und der EDT-Lauf mit /INFORM-PROGRAM fortgesetzt, so wird die Bearbeitung der Anweisung abgebrochen und die Meldung EDT5501 ausgegeben.

Wird im Dialogbetrieb abschnittsweise ausgegeben, fordert der EDT nach der Ausgabe eines Abschnitts (Dateiabschnitt oder Folge von Zeichenfolgevariablen) eine Blättereingabe, mit der abgebrochen oder positioniert werden kann. Dabei kann der durch lines bzw. svars festgelegte Bereich auch verlassen werden. Die folgenden Blättereingaben sind möglich:

[DUE]

Die leere Eingabe beim Blättern bewirkt den Übergang zum nächsten (also
den dem zuletzt ausgegebenen Abschnitt unmittelbar folgenden) Abschnitt
der Ausgabe. Ist im V-Modus bereits das Ende des aktuellen Bereiches
erreicht, wird die letzte Zeile dieses Bereiches erneut ausgegeben und
wieder zur Eingabe einer Blätteranweisung aufgefordert.
Bei Beginn der Ausgabe eines Bereiches ist der aktuelle Bereich gleich
dem angegebenen Bereich. Das kann aber durch die Blätteranweisungen
+ oder - geändert werden.

*Es wird zunächst zum E-Modus gewechselt und der aktuelle Bereich (falls verändert) wieder auf den in der Anweisung angegebenen Bereich zurückgesetzt.
Dann wird zum nächsten (also den dem zuletzt ausgegebenen Abschnitt unmittelbar folgenden) Abschnitt der Ausgabe übergegangen, es sei denn, die zuletzt ausgegebene Zeile ist die letzte Zeile des angegebenen Bereiches oder liegt bereits oberhalb des angegebenen Bereiches (durch +
möglich). Im diesem Fall wird zum nächsten angegebenen Bereich übergegangen bzw. die Ausgabe beendet.

+

Es wird zunächst zum V-Modus gewechselt und als aktueller Bereich wird
unabhängig von der Angabe im Operanden lines bzw. svars der Bereich
0.0001-9999.9999 bei Zeilen bzw. #S01-#S20 bei Zeichenfolgevariablen
eingestellt.

Dann wird der Abschnitt ausgegeben, der dem zuletzt ausgegebenen
Abschnitt unmittelbar folgt. Nach Erreichen der letzten Zeile der Arbeitsdatei
bzw. der letzten Zeichenfolgevariablen (#S20) führen weitere Eingaben
von + nur zur Ausgabe der letzten Zeile verbunden mit der Aufforderung zur
Blättereingabe.

+n

Es wird zunächst zum V-Modus gewechselt und als aktueller Bereich wird
unabhängig von der Angabe im Operanden lines bzw. svars der Bereich
0.0001-9999.9999 bei Zeilen bzw. #S01-#S20 bei Zeichenfolgevariablen
eingestellt.
Dann wird der Abschnitt ausgegeben, der in der Arbeitsdatei n Zeilen hinter
der letzten ausgegebenen Zeile beginnt (analog für Zeichenfolgevariablen).
Nach Erreichen der letzten Zeile der Arbeitsdatei bzw. der letzten
Zeichenfolgevariablen (#S20) führen weitere Eingaben von +n nur zur Ausgabe der
letzten Zeile, verbunden mit der Aufforderung zur Blättereingabe.

-Es wird als aktueller Bereich unabhängig von der Angabe im Operanden lines bzw. svars der Bereich 0.0001-9999.9999 bei Zeilen bzw. #S01-#S20 bei Zeichenfolgevariablen eingestellt (Achtung, es wird nicht wie bei + in den V-Modus gewechselt).
Dann wird der Abschnitt ausgegeben, der unmittelbar vor dem zuletzt ausgegebenen steht. Nach Erreichen der ersten Zeile der Arbeitsdatei bzw. der ersten Zeichenfolgevariablen (#S00) führen weitere Eingaben von - nur zur Ausgabe des mit der ersten Zeile beginnenden Abschnitts, verbunden mit der Aufforderung zur Blättereingabe.

–n

Es wird als aktueller Bereich unabhängig von der Angabe im Operanden
lines bzw. svars der Bereich 0.0001-9999.9999 bei Zeilen bzw.
#S01-#S20 bei Zeichenfolgevariablen eingestellt (Achtung, es wird nicht
wie bei + in den V-Modus gewechselt).
Dann wird der Abschnitt ausgegeben, der in der Arbeitsdatei n Zeilen vor
der ersten Zeile des zuletzt ausgegebenen Abschnitts beginnt (analog für
Zeichenfolgevariablen). Nach Erreichen der ersten Zeile der Arbeitsdatei
bzw. der ersten Zeichenfolgevariablen (#S00) führen weitere Eingaben von
-n nur zur Ausgabe des mit der ersten Zeile beginnenden Abschnitts,
verbunden mit der Aufforderung zur Blättereingabe.

0

Beendet die Ausgabe des aktuellen Bereiches. Wurden in der @PRINT-
Anweisung mehrere auszugebende Bereiche angegeben, wird zum nächsten
Bereich übergegangen.

Passt bei abschnittsweiser Ausgabe eine lange Zeile nicht mehr auf den Bildschirm, wird der Abschnitt vor dieser Zeile beendet (falls er bereits Zeilen enthält) auch wenn der Bildschirm damit nicht ausgeschöpft wird. Ist bereits die erste Zeile eines Abschnitts länger als der Bildschirm erlaubt, dann wird diese Zeile als ein Abschnitt allein ausgegeben.
Die Ausgabe der Zeile wird im Dialogbetrieb nur unterbrochen, wenn die Überlaufkontrolle des Betriebssystems eingeschaltet ist.

Alle Ausgaben werden vom Zeichensatz der Arbeitsdatei bzw. der Zeichenfolgevariablen in den Zeichensatz von SYSOUT bzw. SYSLST konvertiert.

Werden dabei Zeichen gefunden, denen im Ziel-Zeichensatz kein gültiges Zeichen entspricht, werden diese durch ein Ersatzzeichen ersetzt, sofern ein solches spezifiziert ist (siehe @PAR SUBSTITUTION-CHARACTER), andernfalls werden dafür Leerzeichen eingesetzt.

Die Ausgaben nach SYSLST werden nach Ausgabe von jeweils 132 Zeichen (bzw. 160 Zeichen, wenn Auftragsschalter 6 gesetzt ist) umgebrochen. Die Ausgaben nach SYSOUT werden so umbrochen, wie die Makros WROUT bzw. WRTRD es erfordern. Es wird aber immer an einer Zeichengrenze umbrochen.

Hinweis

Anders als im Kompatibilitäts-Modus wird die Eingabe eines Kommandos an der Aufforderung zur Blättereingabe immer abgelehnt und mit erneuter Ausgabe der Aufforderung zum Blättern quittiert. Um ein Kommando einzugeben muss also @PRINT immer erst durch Eingabe von 0 beendet werden.
Die Ausgaben von @PRINT werden im Dialogbetrieb entweder mit WROUT oder mit WRTRD erzeugt, bei @PRINT...E sogar gemischt. Eine Umlenkung von SYSOUT in eine Datei macht daher im Dialog nur bedingt Sinn, insbesondere auch wegen der im Abschnitt „Systemdateien“ beschriebenen Zeichensatz-Problematik.