Dieser Abschnitt beschreibt die Funktionen, die bei allen Objekttypen zur Verfügung stehen, bei denen Hauptkommandos oder Zeilenkommandos verwendet werden können.
Dieser Abschnitt beschreibt die Zeilenkommandos und Hauptkommandos, die zum Einfügen und Löschen von Zeilen zur Verfügung stehen.
Zum Einfügen und Löschen von Zeilen auf dem Editor-Bildschirm stehen Ihnen folgende Zeilenkommandos zur Verfügung:
Zeilenkommando | Erläuterung |
---|---|
D |
Löscht die markierte Zeile. |
Dn |
Löscht die nächsten
n Zeilen.
|
DD |
Markiert die erste Zeile eines zu löschenden Blocks.
Zum Eingrenzen des Blocks ist ein zweites
DD -Kommando nötig. Die Löschung erfolgt nach der
Eingabe des zweiten DD -Kommandos..
|
DX |
Löscht die mit .X markierte
Zeile.
|
DY |
Löscht die mit .Y markierte
Zeile.
|
DX-Y |
Löscht den Zeilenblock ab der mit .X
markierten Zeile bis zur mit .Y markierten Zeile.
|
I |
Fügt eine Zeile unterhalb der aktuellen Zeile ein. Der
Editor wird auf den Einfügemodus umgeschaltet. Das heißt, wenn Sie in der neuen
Zeile Daten oder ein Leerzeichen eintippen und Enter drücken, wird
automatische eine neue Zeile eingefügt und der Cursor in diese Zeile platziert.
Falls Sie in eine eingefügte Zeile keine neuen Daten
eingeben und Enter drücken, verlässt der Editor den Einfügemodus,
und die Leerzeile wird gelöscht. Wenn Sie eine Maskenzeile definiert haben und
das Kommando |
In |
Fügt n Zeilen
unterhalb der aktuellen Zeile ein. Sie können in die neuen Zeilen Daten
eingeben. Wenn Sie Enter drücken, werden nicht benutzte Zeilen
gelöscht, eine Leerzeile bleibt jedoch erhalten, und der Cursor wird in diese
Zeile platziert (d.h. der Editor bleibt im Einfügemodus).
|
TE |
Schaltet den Editor in den Texteingabemodus. Das
heißt, dass ab dieser Zeile der Editor-Bildschirm leer ist (ohne Zeilennummern)
und dass Sie Daten eingeben können.
Wenn Sie Enter drücken, werden alle übrig gebliebenen Leerzeilen gelöscht, Zeilennummern werden wieder angezeigt und der Text wird, unter Berücksichtigung der Ausrichtungseinstellungen innerhalb der eingestellten Randbegrenzungen neu formatiert. Siehe auch POWER-Kommando. |
W |
Öffnet ein einzeiliges Fenster. Es wird keine neue Zeile eingefügt, wenn Sie in dieses Fenster Daten eingeben und Enter drücken. |
Wn |
Öffnet ein Fenster mit
n Zeilen. Wenn Sie Enter
drücken, werden alle nicht benutzten Zeilen gelöscht.
|
Sie können auch das Hauptkommando
POWER
benutzen, um in den Texteingabemodus umzuschalten.
Wenn Sie das Hauptkommando POWER
absetzen, erscheint ein leerer Editor-Bildschirm (ohne Zeilennummern), und Sie
können Daten eingeben. Wenn Sie Enter drücken, werden übrig
gebliebene Leerzeilen gelöscht, Zeilennummern werden wieder angezeigt und der
Text wird, unter Berücksichtigung der Ausrichtungseinstellungen innerhalb der
eingestellten Randbegrenzungen neu formatiert.
Zum Löschen von Zeilen können Sie auch das Hauptkommando
DELETE
benutzen.
Beispiel:
DEL C'Abc' .X .Y 10 30 ALL
Dieses Kommando löscht alle Zeilen, die die Zeichenkette
Abc
genau so wie hier angegeben enthalten zwischen den Spalten 10
bis 30 innerhalb des Blocks, der mit den Markierungen .X
und
.Y
eingegrenzt ist.
Sie können alle weiter oben für das
FIND
-Kommando beschriebenen Operanden angeben.
Ausnahme: Der Richtungsoperand ALL
gibt die Löschung aller Zeilen
mit der angegebenen Zeichenkette an. Ein nicht qualifiziertes
DELETE
-Kommando löscht die aktuelle Zeile.
Mit den folgenden Zeilenkommandos können Sie Zeilen oder Datenblöcke kopieren, verschieben, überlagern und wiederholen.
Zeilenkommando | Erläuterung |
---|---|
A |
Markiert die Zielzeile für ein Zeilenkommando zum
Kopieren (C ,
Cn ,
CC ) oder Verschieben (M ,
Mn ,
MM ). Die Daten werden nach dieser Zeile
eingefügt.
|
B |
Markiert die Zielzeile für ein Zeilenkommando zum
Kopieren (C ,
Cn ,
CC ) oder Verschieben (M ,
Mn ,
MM ). Die Daten werden vor dieser Zeile
eingefügt.
|
C |
Kopiert diese Zeile an die Stelle, die mit einem
Zeilenkommando A , B or
O markiert ist.
|
Cn |
Kopiert die nächsten
n Zeilen an die Position, die mit einem
Zeilenkommando A , B or
O markiert ist.
|
CC |
Markiert die erste Zeile des zu kopierenden Blocks. Ein
zweites Kommando CC ist nötig, um den Block
einzugrenzen. Das Kopieren erfolgt, nachdem das Ziel mit einem Zeilenkommando
A , B oder
O markiert worden ist.
|
CX |
Kopiert die mit .X markierte Zeile. Fügt
die Daten nach dieser Zeile ein.
|
CY |
Kopiert die mit .Y markierte Zeile. Fügt
die Daten nach dieser Zeile ein.
|
CX-Y |
Kopiert den Zeilenblock ab der Zeile, die mit
.X markiert ist, bis zur Zeile, die mit .Y markiert
ist. Fügt die Daten nach dieser Zeile ein.
|
M |
Verschiebt diese Zeile an die Position, die mit einem
Zeilenkommando A , B oder
O markiert ist.
|
Mn |
Verschiebt die nächsten
n Zeilen an die Position, die mit einem
Zeilenkommando A oder B
markiert ist.
|
MM |
Markiert die erste Zeile des zu verschiebenden Blocks.
Ein zweites Zeilenkommando MM ist nötig, um den
Block abzugrenzen. Das Verschieben erfolgt, nachdem das Ziel mit einem
Zeilenkommando A , B oder
O markiert worden ist.
|
MX |
Verschiebt die mit .X markierte Zeile. Fügt
die Daten nach dieser Zeile ein.
|
MY |
Verschiebt die mit .Y markierte Zeile. Fügt
die Daten nach dieser Zeile ein.
|
MX-Y |
Verschiebt den Zeilenblock ab der Zeile, die mit
.X markiert ist, zur Zeile, die mit .Y markiert ist.
Fügt die Daten nach dieser Zeile ein.
|
O |
Markiert die Zielzeile für ein Zeilenkommando zum
Kopieren (C ,
Cn ,
CC ) oder zum Verschieben
(M ,
Mn ,
MM ). Die Daten werden mit dieser Zeile
zusammengeführt. (Es werden nur Leerzeichen innerhalb der
Bereichsgrenzen geändert).
Siehe auch Beispiel für das Überlagern von Daten. |
On |
Markiert diese Zeile und die nächsten
n Zeilen als Zielzeilen für ein
Kopier-Zeilenkommando (C ,
Cn ,
CC ) oder Verschieben-Zeilenkommando
(M ,
Mn ,
MM ). Die kopierten oder verschobenen Zeilen werden
mit diesen Zeilen zusammengeführt, d.h. Leerzeichen in den Zeilen werden
überlagert.
Siehe auch Beispiel für das Überlagern von Daten. |
OO |
Markiert die erste Zeile eines Zielzeilenblocks für ein
Kopier-Zeilenkommando (C ,
Cn ,
CC ) oder Verschiebe-Zeilenkommando
(M ,
Mn ,
MM ). Ein zweites Zeilenkommando
OO ist nötig, um die letzte Zeile des
Zielzeilenblocks zu markieren.
Die kopierten oder verschobenen Zeilen werden mit diesen Zeilen zusammengeführt, d.h. Leerzeichen in den Zeilen werden überlagert. Siehe auch Beispiel für das Überlagern von Daten. |
R |
Wiederholt diese Zeile einmal. |
Rn |
Wiederholt diese Zeile
n Mal.
|
RR |
Markiert die erste Zeile eines Blocks, der wiederholt
werden soll. Ein zweites Kommando RR ist nötig, um
den Block einzugrenzen. Die Wiederholung erfolgt, nachdem das zweite Kommando
RR eingegeben worden ist.
|
RRn |
Wiederholt den Block, der durch zwei Zeilenkommandos
RRn eingegrenzt ist,
n Mal.
Klammerkommandos |
) |
Verschiebt diese Zeile ab der linken Begrenzung um eine Spalte nach Rechts. |
)n |
Verschiebt diese Zeile um
n Spalten nach Rechts.
|
))n |
Markiert die erste Zeile eines um
n Spalten nach Rechts zu verschiebenden
Blocks. Ein zweites Kommando
))n ist nötig, um den
Block einzugrenzen. Das Verschieben erfolgt, nachdem das zweite Kommando
))n eingeben worden ist.
Zwei nicht qualifizierte Zeilenkommandos ))
verschieben den Block um eine Spalte nach Rechts.
|
( |
Verschiebt diese Zeile um eine Spalte nach Links. |
(n |
Verschiebt diese Zeile um
n Spalten nach Links.
|
((n |
Markiert die erste Zeile eines um
n Spalten nach Links zu verschiebenden
Blocks. Ein zweites Zeilenkommando
((n ist nötig, um den Block
einzugrenzen. Das Verschieben erfolgt, nachdem das zweite Kommando
((n eingeben worden ist.
Zwei nicht qualifizierte Zeilenkommandos ((
verschieben den Block um eine Spalte nach Links.
Wenn Sie die Symbole |
> |
Verschiebt diese Zeile um eine Spalte nach Rechts. |
>n |
Verschiebt diese Zeile um
n Spalten nach Links.
|
>>n |
Markiert die erste Zeile eines um
n Spalten nach Rechts zu verschiebenden
Blocks. Ein zweites Zeilenkommando >> ist
nötig, um den Block einzugrenzen. Das Verschieben erfolgt, nachdem das zweite
Kommando >> eingeben worden ist. Zwei nicht
qualifizierte Zeilenkommandos >> verschieben
den Block um eine Spalte nach Rechts.
|
< |
Verschiebt diese Zeile um eine Spalte nach Links. |
<n |
Verschiebt diese Zeile um
n Spalten nach Links.
|
<<n |
Markiert die erste Zeile eines um
n Spalten nach Links zu verschiebenden
Blocks. Ein zweites Zeilenkommando << ist
nötig, um den Block einzugrenzen. Das Verschieben erfolgt, nachdem das zweite
Kommando << eingeben worden ist. Zwei nicht
qualifizierte Zeilenkommandos << verschieben
den Block um eine Spalte nach Links.
|
Mit einem Überlagerungszeilenkommando
(O
,
On
oder
OO
) können Sie einspaltige Listen in ein
mehrspaltiges Format (d.h., in eine Tabellenform) zusammenführen. Sie können
ein Überlagerungszeilenkommando in Verbindung mit einem Kopier-Zeilenkommando
(C
,
Cn
oder
CC
) oder einem Verschiebe-Zeilenkommando
(M
,
Mn
oder
MM
) benutzen.
Dies wird in den folgenden zwei Abbildungen veranschaulicht:
EDIT-NAT:NATLIB1(JOB1JCL)-Program->Struct-Free-77K ------------ Columns 001 072 COMMAND===> SCROLL===> CSR 000090 //JOBNAME JOB NAT,MSGCLASS=X,CLASS=G,TIME=1400 000100 /*JOBPARM LINES=2000 000110 //COPY EXEC PGM=NATBAT,TIME=60, 000120 // PARM=('DBID=9,FNR=33,FNAT=(,15),FSIZE=19', 000130 // 'EJ=OFF,IM=D,ID='';'',MAINPR=1,INTENS=1') OO0140 //STEPLIB DD 000150 // DD 000160 // DD OO0170 // DD MM0180 DISP=SHR,DSN=SPF.SYSF.ADALOAD 000190 DISP=SHR,DSN=SPF.SYSF.LOAD 000200 DISP=SHR,DSN=SPF.SYSF.PROD.INST * OPS INSTALL MM0210 DISP=SHR,DSN=SPF.SYSF.SOURCE * OPS DOCUMENTS 000220 //DDCARD DD * 000230 ADARUN DA=9,DE=3380,SVC=249 000240 //CMPRINT DD SYSOUT=X 000250 //CMPRT01 DD SYSOUT=X 000260 //CMWKF01 DD DUMMY 000270 //CMSYNIN DD * 000280 LOGON SYSMAIN2 000290 CMD C C * FM #FL DBID #FD FNR #FF TO #TL DBID #TD FNR #TF REP 000300 FIN 000310 /* ****** **************************** bottom of data **************************** Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12--- Help Split End Suspe Rfind Rchan Up Down Swap Left Right Curso |
In der obigen Abbildung sind die Zeilen 180 bis 210 mit dem
Zeilenkommando MM
(Verschieben) markiert. Sie werden
über die Zeilen 140 bis 170 gelegt, die mit dem Zeilenkommando
OO
(Überlagern) markiert sind.
Die folgende Abbildung zeigt das Ergebnis der Ausführung der Zeilenkommandos, die in der obigen Abbildung zu sehen sind. Die Zeilen 180 bis 220 sind über die Zeilen 140 bis 170 gelegt worden:
EDIT-NAT:NATLIB1(JOB1JCL)-Program->Struct-Free-76K ------------ Checkpoint done COMMAND===> SCROLL===> CSR 000090 //JOBNAME JOB NAT,MSGCLASS=X,CLASS=G,TIME=1400 000100 /*JOBPARM LINES=2000 000110 //COPY EXEC PGM=NATBAT,TIME=60, 000120 // PARM=('DBID=9,FNR=33,FNAT=(,15),FSIZE=19', 000130 // 'EJ=OFF,IM=D,ID='';'',MAINPR=1,INTENS=1') 000140 //STEPLIB DD DISP=SHR,DSN=SPF.SYSF.ADALOAD 000150 // DD DISP=SHR,DSN=SPF.SYSF.LOAD 000160 // DD DISP=SHR,DSN=SPF.SYSF.PROD.INST * OPS INSTALL 000170 // DD DISP=SHR,DSN=SPF.SYSF.SOURCE * OPS DOCUMENTS 000180 //DDCARD DD * 000190 ADARUN DA=9,DE=3380,SVC=249 000200 //CMPRINT DD SYSOUT=X 000210 //CMPRT01 DD SYSOUT=X 000220 //CMWKF01 DD DUMMY 000230 //CMSYNIN DD * 000240 LOGON SYSMAIN2 000250 CMD C C * FM #FL DBID #FD FNR #FF TO #TL DBID #TD FNR #TF REP 000260 FIN 000270 /* ****** **************************** bottom of data **************************** Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12--- Help Split End Suspe Rfind Rchan Up Down Swap Left Right Curso |
Sie können ein Fenster mit Daten für Verschiebe- oder Kopieraktionen markieren. Auf diese Weise können Sie Daten, die nicht am Anfang einer Zeile beginnen und nicht am Ende einer Zeile enden, kopieren oder verschieben. Diese Aktionen können Sie mittels Editor-Zeilenkommandos und/oder Editor-Hauptkommandos durchführen.
Wenn Sie ein Fenster definieren, werden alle Daten auf dem Bildschirm, die sich zwischen dem Anfang und dem Ende des Fensters befinden, zu einem Teil des Fensters.
Dieser Abschnitt behandelt folgende Themen:
Zeilenkommando | Erläuterung |
---|---|
WS |
Markiert den Anfang eines Datenfensters. Die Cursor-Position markiert die Spalte, ab der die Daten gelesen werden. Falls sich der Cursor nicht in der Zeile befindet, bei der das Kommando eingegeben wurde, beginnt das Fenster in Spalte 1. |
WSn |
Das Datenfenster beginnt in Spalte
n dieser Zeile.
|
WE |
Markiert das Ende eines Datenfensters. Funktion wie
bei WS . Falls das Fenster in derselben Zeile
beginnen und enden soll, tippen Sie das WS -Kommando
über das WE -Kommando. Der Editor bestätigt das
eingestellte Fenster mit den Meldungen WS
(WSn ) und
WE
(WEn ) im Präfixbereich
bzw. mit WW , wenn sich Anfang und Ende des Fensters
in derselben Zeile befinden.
Bevor Sie ein neues Fenster definieren, müssen Sie das
alte Fenster mit dem |
WEn
|
Das Datenfenster endet in Spalte
n dieser Zeile.
|
WC |
Kopiert das Datenfenster. Die Cursor-Position markiert die Spalte, an der die Zeile aufgespalten werden soll, um die kopierten Daten einzufügen. |
WCn
|
Spaltet diese Zeile in Spalte
n , und kopiert die Daten zwischen die
beiden Teilen dieser Zeile.
|
WM |
Verschiebt das Datenfenster. Funktion wie bei
WC , jedoch werden die ursprünglichen Daten nach dem
Kopiervorgang gelöscht.
|
WMn
|
Spaltet diese Zeile in Spalte
n , und verschiebt die Daten zwischen
die beiden Teilen dieser Zeile.
|
Main Command | Erläuterung |
---|---|
WINDOW |
Definiert ein Fenster. Als Parameter werden die
Startzeile und Startspalte und die Endzeile und Endspalte angeben. Es muss
mindestens ein Parameter angegeben werden. Beispiele:
Definiert ein Fenster, das in Zeile 5/Spalte 24 beginnt und in Zeile 10/Spalte 13 endet.
Definiert ein Fenster, das in Zeile 5/Spalte 24 beginnt und in Zeile 10/letzte Spalte endet. Definiert ein Fenster, das in Zeile 5/erste Spalte beginnt und in Zeile 10/letzte Spalte endet. Definiert ein Fenster, das in Zeile 5/erste Spalte beginnt und in Zeile 5/letzte Spalte endet. |
CWINDOW |
Kopiert ein Fenster, das mit dem
WINDOW -Kommando definiert wurde. Optionale Parameter
geben die Zeile an, bei der das Fenster eingefügt werden soll. Beispiele:
Kopiert das Fenster nach Zeile 5. Spaltet Zeile 5 bei Spalte 24 und kopiert das Fenster zwischen die beiden Teile. |
DWINDOW |
Löscht ein Datenfenster, das mit dem
WINDOW -Befehl definiert wurde.
|
MWINDOW |
Verschiebt ein Fenster, das mit dem
WINDOW -Befehl definiert wurde. Funktion wie beim
CWINDOW -Kommando, jedoch werden die ursprünglichen
Daten nach dem Kopiervorgang gelöscht.
|
Dieser Abschnitt enthält ein Beispiel für das Definieren und Verschieben von Text mittels eines Datenfensters, wobei entweder Zeilenkommandos oder die entsprechenden Hauptkommandos zur Anwwendung kommen.
Das Beispiel bezieht sich auf den Text, der in Schritt 1 weiter
unten gezeigt wird. Es wird davon ausgegangen, dass Sie den ganzen Satz, der
mit Note that when...
(Zeile 8) beginnt, so verschieben wollen,
dass er auf den angezeigten Text folgt, der mit ...copy operations
(Zeile 3) endet.
Um ein Fenster mit Zeilenkommandos zu definieren und zu verschieben:
Geben Sie den unten abgebildeten Text ein:
EDIT-NAT:NATLIB1(WINEX)-Text->Struct-Free-78K ----------------- Columns 001 072 COMMAND===> SCROLL===> CSR ****** ****************************** top of data ***************************** 000001 Copy a Window with Data 000002 000003 You can specify a window with data for move or copy operations. This 000004 allows you to copy or move data that does not start or end at the 000005 beginning or end of a line. This function can be performed using 000006 editor line commands and/or main commands. 000007 000008 Below are some examples of copying windows with data. Note that when 000009 you define a window, all data on your screen between start and end of 000010 the window become part of the window. Available line commands are: ****** **************************** bottom of data **************************** Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12--- Help Split End Suspe Rfind Rchan Up Down Swap Left Right Curso |
Geben das Zeilenkommando WS
in
Zeile 8 (der ersten zu verschiebenden Datenzeile) ein. Positionieren Sie den
Cursor in die betreffende Spalte (N
des Worts Note
)
und drücken Sie Enter.
Die Meldung WS55
erscheint im Präfixbereich der
Zeile 8 und zeigt die Nummer der gewählten Spalte an:
EDIT-NAT:NATLIB1(WINEX)-Text->Struct-Free-78K ---------------- Block is pending COMMAND===> SCROLL===> CSR ****** ****************************** top of data ***************************** 000001 Copy a Window with Data 000002 000003 You can specify a window with data for move or copy operations. This 000004 allows you to copy or move data that does not start or end at the 000005 beginning or end of a line. This function can be performed using 000006 editor line commands and/or main commands. 000007 WS55 Below are some examples of copying windows with data. Note that when 000009 you define a window, all data on your screen between start and end of 000010 the window become part of the window. Available line commands are: ****** **************************** bottom of data **************************** Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12--- Help Split End Suspe Rfind Rchan Up Down Swap Left Right Curso |
Geben Sie das Zeilenkommando WE
in Zeile 10 (die letzte Zeile der zu verschiebenden Daten) ein, platzieren Sie
den Cursor auf die letzte zu verschiebende Spalte (Satzende-Zeichen
(.
) nach window
) und drücken Sie
Enter.
Die Meldung WE37
erscheint im Präfixbereich der
Zeile 10:
EDIT-NAT:NATLIB1(WINEX)-Text->Struct-Free-78K ---------------- Block is pending COMMAND===> SCROLL===> CSR ****** ****************************** top of data ***************************** 000001 Copy a Window with Data 000002 000003 You can specify a window with data for move or copy operations. This 000004 allows you to copy or move data that does not start or end at the 000005 beginning or end of a line. This function can be performed using 000006 editor line commands and/or main commands. 000007 WS55 Below are some examples of copying windows with data. Note that when 000009 you define a window, all data on your screen between start and end of WE37 the window become part of the window. Available line commands are: ****** **************************** bottom of data **************************** Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12--- Help Split End Suspe Rfind Rchan Up Down Swap Left Right Curso |
Geben Sie das Zeilenkommando WM
in Zeile 3 ein (die Daten werden in die Folgezeile, Zeile 4, verschoben), und
bewegen Sie den Cursor in die Spalte, bei der Zeile 3 gesplittet werden soll
(das Leerzeichen vor den Wort This
). Drücken Sie
Enter.
Der angegebene Textabschnitt wird verschoben:
EDIT-NAT:NATLIB1(WINEX)-Text->Struct-Free-78K ----------------- Checkpoint done COMMAND===> SCROLL===> CSR ****** ****************************** top of data ***************************** 000001 Copy a Window with Data 000002 000003 You can specify a window with data for move or copy operations. 000004 Note that when 000005 you define a window, all data on your screen between start and end of 000006 the window become part of the window. 000007 This 000008 allows you to copy or move data that does not start or end at the 000009 beginning or end of a line. This function can be performed using 000010 editor line commands and/or main commands. 000011 000012 Below are some examples of copying windows with data. 000013 Available line commands are: ****** **************************** bottom of data **************************** Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12--- Help Split End Suspe Rfind Rchan Up Down Swap Left Right Curso |
Sie können das gleiche Ergebnis wie in der zuvor beschriebenen Anleitung erzielen, indem Sie die folgende Kommandoabfolge benutzen.
Um ein Fenster mit Hauptkommandos zu definieren und zu verschieben:
Geben Sie den Text ein, der unter Schritt 1 weiter oben abgebildet ist.
Geben Sie folgende Hauptkommandos in der Kommandozeile ein:
WINDOW 8 10 55 37;MWINDOW 3 64
Der angegebene Textabschnitt wird wie in Schritt 4 dargestellt verschoben.
Es gibt Editor-Kommandos, mit denen Sie bei bestimmten Funktionen
die horizontalen und vertikalen Bereichsgrenzen einstellen können, zum Beispiel
die Hauptkommandos FIND
,
CHANGE
, CEnter
,
ORDER
, JLEFT
und
JRIGHT
sowie die entsprechenden Zeilenkommandos (Zum
Beispiel TC
, TO
,
LJ
oder RJ
).
Dieser Abschnitt behandelt folgende Themen:
Mit dem Hauptkommando BNDS
können Sie
die horizontalen Bereichsgrenzen so wie in der nachfolgenden Beispiel-Anleitung
beschrieben einstellen.
Um Bereichsgrenzen einzustellen und anzuzeigen:
Setzen Sie folgendes Hauptkommando ab:
BNDS 20 50
Die horizontalen Grenzen werden bei den Spalten 20 und 50 gesetzt.
Um die aktuelle Einstellung der Bereichsgrenzen anzuzeigen, setzten Sie das folgende Zeilenkommando ab:
BNDS
Die folgende Abbildung zeigt das Ergebnis des
Hauptkommandos BNDS 20 50
, auf das ein
Zeilenkommando BNDS
in Zeile 2 folgt:
EDIT-NAT:NATLIB1(JOB1JCL)-Program->Struct-Free-77K ------------ Columns 001 072 COMMAND===> SCROLL===> CSR ****** ****************************** top of data ***************************** =cols> ----+----1----+----2----+----3----+----4----+----5----+----6----+----7-- =bnds> < > 000010 RESET #JOBNAME(A8) 000020 RESET #FD(N3) #FL(A8) #FF(N3) 000030 RESET #TD(N3) #TL(A8) #TF(N3) 000040 COMPRESS *INIT-USER 'SM' INTO #JOBNAME LEAVING NO SPACE 000050 SET CONTROL 'WL60C6B005/010F' 000060 INPUT 'Enter PARAMETERS FOR LIBRARY COPY:' 000070 / 'FROM: DBID:' #FD 'FNR:' #FF 'LIB:' #FL 000080 / 'TO : DBID:' #TD 'FNR:' #TF 'LIB:' #TL 000090 // #JOBNAME JOB JWO,MSGCLASS=X,CLASS=G,TIME=1400 000100 /*JOBPARM LINES=2000 000110 //COPY EXEC PGM=NATBAT21,REGION=2000K,TIME=60, 000120 // PARM=('DBID=9,FNR=33,FNAT=(,15),FSIZE=19', 000130 // 'EJ=OFF,IM=D,ID='';'',MAINPR=1,INTENS=1') 000140 //STEPLIB DD DISP=SHR,DSN=OPS.SYSF.V5.ADALOAD 000150 // DD DISP=SHR,DSN=OPS.SYSF.PROD.LOAD 000160 //DDCARD DD * 000170 ADARUN DA=9,DE=3380,SVC=249 000180 //CMPRINT DD SYSOUT=X 000190 //CMPRT01 DD SYSOUT=X 000200 //CMWKF01 DD DUMMY 000210 //CMSYNIN DD * 000220 LOGON SYSMAIN2 000230 CMD C C * FM #FL DBID #FD FNR #FF TO #TL DBID #TD FNR #TF REP 000240 FIN 000250 /* Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12--- Help Split End Suspe Rfind Rchan Up Down Swap Left Right Curso |
Sie können die aktuelle Zeile (die sich zurzeit am Anfang des
Editierbereichs befindet) oder einen Zeilenblock markieren, indem Sie entweder
das Hauptkommando LABEL
oder entsprechende
Zeilenkommandos benutzen.
Um aktuelle Zeilen mit LABEL
zu
markieren:
Setzen Sie das folgende Hauptkommando ab:
LABEL .X
Die aktuelle Zeile wird mit .X
markiert.
Um einen Zeilenblock einzugrenzen, können Sie jetzt zur nächsten gewünschten Begrenzungszeile blättern und dann das folgende Hauptkommando absetzen:
LABEL .Y
Die neue aktuelle Zeile wird mit .Y
markiert,
womit die letzte Zeile eines Zeilenblocks gekennzeichnet ist.
Um bestimmte Zeilen mittels Zeilenkommandos zu markieren:
Setzen Sie neben der ersten zu markierenden Zeile folgendes Zeilenkommando ab:
.X
Die angegebene Zeile wird mit .X
markiert.
Setzen Sie neben der letzten zu markierenden Zeile folgendes Zeilenkommando ab:
.Y
Die angegebene Zeile wird mit .Y
markiert,
womit ein Zeilenblocks gekennzeichnet ist, der bei der mit .X
markierten Zeile beginnt.
Tipp:
Sie können zum Markieren von Zeilen eine beliebige Zeichenkette
benutzen, z.B. .START
und .END
.
Beispiele für die Verwendung von Markierungszeilen siehe Zeichenkette suchen und Zeichenkette ersetzen.
Sie können Daten definieren, die automatisch in eine Zeile platziert
werden, und zwar mittels einer Zeileneinfüge-Operation (z.B. mit dem
Zeilenkommando I
oder W
).
Eine solche Zeile wird als Maskenzeile bezeichnet. Eine Maskenzeile ist
nützlich, wenn Sie mehrere Codezeilen schreiben müssen, die identisch oder sehr
ähnlich sind.
Anmerkung:
Während einer Bearbeitungssitzung können Sie nur eine Maskenzeile
haben. Wenn Sie eine neue Maskenzeile definieren, wird eine bereits vorhandene
Maskenzeilendefinition automatisch mit dem neuen Wert aktualisiert.
Um eine Maskenzeile zu definieren und zu benutzen:
Setzen Sie folgendes Zeilenkommando ab:
MASK
Über der Zeile, in der Sie das Kommando eingegeben haben,
erscheint eine Leerzeile mit =mask>
.
Geben Sie die Daten, die Sie als Maskenzeile definieren wollen, in die Leerzeile ein, und drücken Sie Enter.
Die Maskenzeile steht nun solange für den aktuellen Quellcode zur Verfügung, bis Sie die Maske mit einer neuen Maskenzeile aktualisieren oder bis Sie die Maskenfunktion deaktivieren.
Setzen Sie folgendes Hauptkommando ab:
MASK ON
Die Maskenfunktion wird aktiviert. Die definierte Maske erscheint nun in allen Zeilen, die durch eine Zeileneinfüge-Operation hinzugefügt werden.
Setzen Sie ein Einfüge-Zeilenkommando ab, zum Beispiel:
I2
Es werden zwei neue Zeilen mit dem Text aus der Maskenzeile in den Quellcode eingefügt. Der Text einer Maskenzeile erscheint in allen Zeilen, die durch ein Einfüge-Zeilenkommando hinzugefügt werden.
Ändern Sie den Text in den neuen Zeilen. Wenn Sie den Text nicht ändern, wird jede eingefügte Zeile gelöscht, wenn Sie das nächste Mal Enter drücken.
Falls erforderlich, deaktivieren Sie die Maskenfunktion mit dem folgende Hauptkommando:
MASK OFF
Das Kommando MASK OFF
deaktiviert
die Maskenfunktion, löscht aber nicht den Inhalt der Maskenzeile.
Siehe auch MASK
in Hauptkommandos (Übersicht).
Sie können die Einrückung angegebener Zeilen ändern, indem Sie das
Hauptkommando ORDER
zusammen mit einer Bereichsgrenzen-Einstellung benutzen. Beispiel: Die
Kommandoabfolge
BNDS 3;ORDER 5 20
verschiebt die Zeilen 5 bis 20 soweit nach Rechts, dass sie in Spalte 3 beginnen.
Anmerkung:
Falls das Ende einer neu angeordneten Zeile jenseits der rechten
Bereichsgrenze zu liegen käme, wird sie automatisch gesplittet.
Um die verschobenen Daten wieder nach links auszurichten, benutzen
Sie das Kommando JLEFT
.
Sie können außerdem die Einrückung von Zeilen oder eines Zeilenblocks ändern, indem Sie Zeilenkommandos absetzen. Dabei gilt ebenfalls, dass, falls das Ende einer Zeile jenseits der rechten Bereichsgrenze zu liegen käme, diese Zeile automatisch gesplittet wird.
Zeilenkommando | Erläuterung |
---|---|
TF |
Ordnet die Daten ab der Zeile neu an, in der es
eingegeben wurde, bis zum Ende des Paragraphs oder bis zur nächsten Leerzeile
bei der rechten Bereichsgrenze. Dieses Zeilenkommando kann mit einem
numerischen Wert, der die rechte Bereichsgrenze angibt, eingegeben werden.
Beispiel: Das Zeilenkommando TF50 ordnet die Daten
bei Spalte 50.
|
TO |
Markiert eine Zeile, die ausgerichtet werden soll. |
TOO |
Markiert die erste Zeile eines Datenblocks, der
ausgerichtet werden soll. Ein zweites Zeilenkommando
TOO ist nötig, um den Block einzugrenzen. Die
Ausrichtung erfolgt, nachdem das zweite TOO -Kommando
abgesetzt worden ist.
|
Die Daten können innerhalb der eingestellten Bereichsgrenzen neu
angeordnet und bündig mit der linken, der rechten oder mit beiden
Bereichsgrenzen angeordnet werden. Dazu dient das Kommando
JUSTIFY
.
Beispiel: Das Kommando:
BNDS 6 60;JUSTIFY BOTH
aktiviert die Ausrichtung auf die Spalten 5 und 60. Um die
Neuausrichtung auszuführen, müssen Sie einen Datenblock mit dem Zeilenkommando
TOO
markieren.
Außerdem bietet der Editor ein Zeilenkommando, mit dem Sie eine
einzelne Zeile in zwei Zeilen aufspalten können. Geben Sie das Zeilenkommando
S
im Präfixbereich der Zeile ein, die Sie aufspalten
möchten. Platzieren Sie den Cursor an die Stelle, an der die Aufspaltung
erfolgen soll, und drücken Sie Enter.
Der Editor bietet Kommandos, mit denen Sie angegebene Daten innerhalb eingestellter Bereichsgrenzen zentrieren können. Beispiel: Die Kommandosequenz
BNDS 5 60;CEnter 5 15
zentriert die Daten in den Zeilen 5 bis 15 zwischen den Spalten 5 und 60.
Anmerkung:
Nur der Text zwischen den Bereichsgrenzen wird zentriert. Der
Text links und rechts der Bereichsgrenzen ist nicht betroffen.
Alternativ können Sie Zeilenkommandos zum Ausführen der Zentrierungsfunktion benutzen:
Zeilenkommando | Erläuterung |
---|---|
TC |
Zentriert diese Zeile innerhalb der eingestellten Bereichsgrenzen. |
TCC |
Markiert die erste Zeile in einem Datenblock, der
zentriert werden soll. Ein zweites Zeilenkommando
TCC ist nötig, um den Block einzugrenzen. Die
Zentrierung erfolgt, nachdem das zweite Kommando TCC
abgesetzt worden ist.
|
Der Editor bietet verschiedene Hauptkommandos und Zeilenkommandos,
mit denen Sie Zeilen oder Datenblöcke auf dem Bildschirm neu ausrichten können,
und zwar in Abhängigkeit von den horizontalen Bereichsgrenzen, die Sie
eingestellt haben (Hauptkommando BNDS
);
siehe Horizontale und
Vertikale Bereichsgrenzen einstellen.
Die Hauptkommandos JLEFT
und JRIGHT
richten die Daten bündig mit der linken bzw. der rechten Bereichsgrenze aus.
Beispiel: Die Kommandosequenz
BNDS 16 80;JLEFT 140 170
richtet die Daten zwischen den Spalten 16 bis 80 in den Zeilen 140 bis 170 linksbündig mit Spalte 16 aus.
Die folgende Abbildung veranschaulicht dieses Beispiel:
EDIT-NAT:NATLIB1(JOB1JCL)-Program->Struct-Free-77K ------------ Columns 001 072 COMMAND===> BNDS 16 80;JLEFT 140 170 SCROLL===> CSR =cols> ----+----1----+----2----+----3----+----4----+----5----+----6----+----7-- 000090 // #JOBNAME JOB NAT,MSGCLASS=X,CLASS=G,TIME=1400 000100 /*JOBPARM LINES=2000 000110 //COPY EXEC PGM=NATBAT,TIME=60, 000120 // PARM=('DBID=9,FNR=33,FNAT=(,15),FSIZE=19', 000130 // 'EJ=OFF,IM=D,ID='';'',MAINPR=1,INTENS=1') 000140 //STEPLIB DD DISP=SHR,DSN=SPF.SYSF.ADALOAD 000150 // DD DISP=SHR,DSN=SPF.SYSF.LOAD 000160 // DD DISP=SHR,DSN=SPF.SYSF.PROD.INST * OPS INSTALL 000170 // DD DISP=SHR,DSN=SPF.SYSF.SOURCE * OPS DOCUMENTS 000180 //DDCARD DD * 000190 ADARUN DA=9,DE=3380,SVC=249 000200 //CMPRINT DD SYSOUT=X 000210 //CMPRT01 DD SYSOUT=X 000220 //CMWKF01 DD DUMMY 000230 //CMSYNIN DD * 000240 LOGON SYSMAIN2 000250 CMD C C * FM #FL DBID #FD FNR #FF TO #TL DBID #TD FNR #TF REP 000260 FIN 000270 /* ****** **************************** bottom of data **************************** Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12--- Help Split End Suspe Rfind Rchan Up Down Swap Left Right Curso |
Der folgende Bildschirm zeigt das Ergebnis des Kommandos, das in der Kommandozeile des obigen Bildschirms angezeigt wird:
EDIT-NAT:NATLIB1(JOB1JCL)-Program->Struct-Free-77K ------ File has been ordered COMMAND===> SCROLL===> CSR =cols> ----+----1----+----2----+----3----+----4----+----5----+----6----+----7-- 000090 // #JOBNAME JOB NAT,MSGCLASS=X,CLASS=G,TIME=1400 000100 /*JOBPARM LINES=2000 000110 //COPY EXEC PGM=NATBAT,TIME=60, 000120 // PARM=('DBID=9,FNR=33,FNAT=(,15),FSIZE=19', 000130 // 'EJ=OFF,IM=D,ID='';'',MAINPR=1,INTENS=1') 000140 //STEPLIB DD DISP=SHR,DSN=SPF.SYSF.ADALOAD 000150 // DD DISP=SHR,DSN=SPF.SYSF.LOAD 000160 // DD DISP=SHR,DSN=SPF.SYSF.PROD.INST * OPS INSTALL 000170 // DD DISP=SHR,DSN=SPF.SYSF.SOURCE * OPS DOCUMENTS 000180 //DDCARD DD * 000190 ADARUN DA=9,DE=3380,SVC=249 000200 //CMPRINT DD SYSOUT=X 000210 //CMPRT01 DD SYSOUT=X 000220 //CMWKF01 DD DUMMY 000230 //CMSYNIN DD * 000240 LOGON SYSMAIN2 000250 CMD C C * FM #FL DBID #FD FNR #FF TO #TL DBID #TD FNR #TF REP 000260 FIN 000270 /* ****** **************************** bottom of data **************************** Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12--- Help Split End Suspe Rfind Rchan Up Down Swap Left Right Curso |
Die Kommandosequenz:
BNDS 10;JRIGHT 15
richtet die Daten rechts von Spalte 10 in Zeile 15 bis zum Ende des Bildschirms bündig mit der letzten Spalte des Editor-Bildschirms (Spalte 88 des Terminal-Bildschirms) aus.
Alternativ können Sie Zeilen ausrichten, indem Sie eines der nachfolgend aufgeführten Zeilenkommandos benutzen:
Zeilenkommando | Erläuterung |
---|---|
LJ |
Richtet die Daten innerhalb der eingestellten Begrenzungen in dieser Zeile bündig mit der linken Begrenzung aus. |
LJJ |
Markiert die die erste Zeile eines Datenblocks innerhalb
der Begrenzungen (die mit dem Hauptkommando BNDS
eingestellt wurden), der linksbündig ausgerichtet werden soll. Ein zweites
Zeilenkommando LJJ ist nötig, um den Block
einzugrenzen. Die Ausrichtung erfolgt, nachdem das zweite Kommando
LJJ abgesetzt worden ist.
|
RJ |
Richtet die Daten innerhalb der eingestellten Begrenzungen in dieser Zeile bündig zur rechten Begrenzung aus. |
RJJ |
Markiert die erste Zeile eines Datenblocks innerhalb der
Begrenzungen (die mit dem Hauptkommando BNDS
eingestellt wurden), der rechtsbündig ausgerichtet werden soll. Ein zweites
Zeilenkommando RJJ ist nötig, um den Block
einzugrenzen. Die Ausrichtung erfolgt, nachdem das zweite Kommando
RJJ abgesetzt worden ist.
|
Sie können Daten auch bündig zur linken Begrenzung ausrichten oder
Daten zwischen der linken und der rechten Begrenzung ausrichten, indem Sie das
Kommando JUSTIFY
benutzen.
Beispiel: Die Kommandosequenz
BNDS 10 60;JUSTIFY LEFT
ermöglicht die Ausrichtung mit der linken Begrenzung. Markieren Sie
einen Datenblock mit zwei Zeilenkommandos TOO
(Erläuterung weiter unten), um die Daten zwischen den Spalten 10 und 60 so neu
zu formatieren, dass sie bündig mit Zeile 10 ausgerichtet sind.
Dieser Abschnitt beschreibt, wie Sie das Hauptkommando
TABS
und/oder das Zeilenkommando
TABS
benutzen können, um die Tabulatorstopps zu
steuern.
In den Tabellierungsbeispielen, die in diesem Abschnitt enthalten
sind, wird davon ausgegangen, dass das kaufmännische Und-Zeichen (&) als
Tabulatorzeichen verwendet wird und dass das Zeilenkommando
COLS
abgesetzt worden ist, um die Spaltenpositionen
anzuzeigen.
Dieser Abschnitt behandelt folgende Themen:
Wenn Sie das Hauptkommando TABS ON
absetzen, werden die Standard-Tabulatorpositionen, die in Ihrem Editor-Profil
eingestellt sind, eingeschaltet, und tabs on std
erscheint in
Ihrem Profil. Um die Tabulatorstopps wieder auszuschalten, müssen Sie das
Hauptkommando TABS OFF
absetzen.
Ausführliche Informationen zur Kommandosyntax, die für das
Hauptkommando TABS
gilt, finden Sie im entsprechenden Abschnitt unter Hauptkommandos
(Übersicht).
Dieser Abschnitt behandelt folgende Themen:
Um die Tabulatorfunktion einzuschalten und die
Standard-Tabulatorpositionen für Ihr Profil beispielsweise auf die Spalten 10,
20, 30, 40 und 50 einzustellen, müssen Sie das Hauptkommando TABS
10 20 30 40 50
absetzen.
Um die Tabulatorfunktion einzuschalten und das logische
Tabulatorzeichen einzustellen, beispielsweise das &-Zeichen, müssen Sie das
Hauptkommando TABS &
absetzen.
Sie können Daten eingeben und diese automatisch zu einer bestimmtem Tabulatorposition verschieben, indem Sie vor den Daten ein logisches Tabulatorzeichen eingeben. Ein einzelnes Tabulatorzeichen verschiebt die Daten an die nächste Tabulatorposition, zwei Tabulatorzeichen verschieben die Daten an die zweite Tabulatorposition usw.
Außer den Tabulatorpositionen können Sie mit dem Hauptkommando
TABS
noch folgende Parameter angeben:
Parameter | Erläuterung |
---|---|
DECIMAL |
Ordnet die Daten so an, dass sich das darin
enthaltene Dezimalzeichen an der Tabulatorposition befindet.
Siehe auch Beispiel 3 - TABS DECIMAL. |
LEFT |
Ordnet die Daten links von der Tabulatorposition an.
Siehe auch Beispiel 1 - Tab Positions. |
RIGHT |
Ordnet die Daten rechts von der Tabulatorposition
an.
Siehe auch Beispiel 2 - TABS RIGHT. |
Um das aktuelle logische Tabulatorzeichen und den
Verschiebeparameter (unter Ausschluss der Tabulatorpositionen) anzuzeigen,
setzen Sie das Hauptkommando PROFILE
ab.
Wenn Sie das Zeilenkommando TABS
in
einer beliebigen Zeile absetzen, werden in dieser Zeile die in Ihrem
Editor-Profil eingestellten Tabulatorpositionen angezeigt und mit einem Stern
(*) gekennzeichnet, falls kein logisches Tabulatorzeichen gesetzt worden ist.
Mit diesem Kommando wird die Tabulatorfunktion nicht eingeschaltet.
Beispiel: Setzen Sie das Zeilenkommando
TABS
ab, um die Positionen anzuzeigen, die mit dem
Hauptkommando TABS 10 20 30 40 50
eingestellt worden
sind.
Dadurch werden die aktuellen Tabulatorpositionen folgendermaßen angezeigt:
=tabs> * * * * * * |
Um Daten in einer bestimmten Spalte mit einer bestimmten Einrückung tabellarisch darzustellen, sind mehrere logische Tabulatorzeichen und gemischte Ausrichtungsparameter möglich.
Um mehrere logische Tabulatorzeichen einzustellen, setzen Sie
das Zeilenkommando TABS
ab und überschreiben Sie
jeden Stern (*) mit einem Sonderzeichen. Jegliche Daten, die Sie unter
Voranstellung eines dieser Sonderzeichen eingeben, werden in der entsprechenden
Spalte tabuliert.
Um gemischte Ausrichtungsparameter einzustellen, geben Sie
rechts neben jedem logischem Tabulatorzeichen L
(Links),
R
(Rechts) oder D
(Dezimal) für linksbündige,
rechtsbündige bzw. am Dezimalzeichen orientierte Ausrichtung ein.
Siehe auch Beispiel 4 - Gemischte Ausrichtung.
Das Kommando
TABS 10 20 40 LEFT
aktiviert logische Tabulatoren bei den Tabulatorspalten 10, 20 und 40 mit linksbündiger Ausrichtung. Nachdem Sie Enter gedrückt haben, wird die eingegebene Textzeile
&abc &def &ghi
folgendermaßen angezeigt:
=cols> ----+----1----+----2----+----3----+----4----+----5----+----6 abc def ghi |
Das Kommando
TABS RIGHT
aktiviert logische Tabulatoren mit rechtsbündiger Ausrichtung. Nachdem Sie Enter gedrückt haben, wird die eingegebene Textzeile
&abc &def &ghi
folgendermaßen angezeigt:
=cols> ----+----1----+----2----+----3----+----4----+----5----+----6 abc def ghi |
Das Kommando
TABS DECIMAL
aktiviert logische Tabulatoren mit Ausrichtung am Dezimalzeichen an der Tabulatorposition. Nachdem Sie Enter gedrückt haben, wird die eingegebene Textzeile
&15.27$ &16.3 EUR &13 IS
folgendermaßen angezeigt:
=cols> ----+----1----+----2----+----3----+----4----+----5----+----6 15.27$ 16.3 EUR 13 IS |
Setzen Sie folgendes Kommando ab:
TABS 10 20 30 40 50
Setzen Sie dann das Zeilenkommando
TABS
ab. Dadurch werden die aktuellen
Tabulatorpositionen folgendermaßen angezeigt:
=tabs> * * * * * |
Geben Sie je nach Bedarf neben jeder Tabulatorposition ein
L
, R
oder D
ein (an nicht markierten
Tabulatorpositionen wird der Wert des letzten
TAB
-Kommandos übernommen):
=tabs> *R *D *D *D *L |
Nachdem Sie Enter gedrückt haben, wird die eingegebene Textzeile
&start &0.01 &0.02 &0.03 &end
folgendermaßen angezeigt:
=cols> ----+----1----+----2----+----3----+----4----+----5----+----6 start 0.01 0.02 0.03 end |
Setzen Sie folgendes Kommando ab:
TABS ' '
Es aktiviert die Tabulatorfunktion mit einem Leerzeichen als Tabulatorzeichen. Nachdem Sie Enter gedrückt haben, wird die eingegebene Textzeile
this is a blank tabulation
folgendermaßen angezeigt:
=cols> ----+----1----+----2----+----3----+----4----+----5----+----6 this is a blank tabulation |
Sie können Datenzeilen in aufsteigender oder absteigender alphabetischer Reihenfolge nach Sortierkriterien sortieren. Beispiel: Das Kommando
SORT 10 15
sortiert alle Zeilen im Quellcode in aufsteigender Reihenfolge entsprechend den Zeichen ab Spalte 10 bis zur Spalte 15.
Um nur einen Zeilenblock zu sortieren, können Sie beispielsweise die
Zeilen, an denen der Block anfangen und enden soll, mit .X
bzw..Y
markieren. Das Kommando:
SORT .X .Y D
sortiert alle Zeilen in dem mit .X
und .Y
markierten Block in absteigender Reihenfolge.
Um beispielsweise einen Zeilenblock entsprechend den Zeichen, die in
Spalte 5 beginnen und in Spalte 20 enden, zu sortieren, markieren Sie die
Zeilen, wo der Block anfangen und enden soll, mit .X
und
.Y
. Das Kommando
SORT 5 20 .X .Y
sortiert alle Zeilen in dem mit .X
und .Y
markierten Block in aufsteigender Reihenfolge entsprechend den Zeichen ab
Spalte 5 bis zur Spalte 20.
Um eine bestimmte Zeichenkette zu finden, können Sie das
Hauptkommando FIND
mit Operanden benutzen, um die
die Zeichenkette, den zu durchsuchenden Bereich und die Suchrichtung zu
definieren. Der Cursor wird auf das erste Zeichen der gefundenen Zeichenkette
platziert. Falls die Zeile, die die gesuchte Zeichenkette enthält, von der
Anzeige ausgeschlossen ist, wird sie jetzt in die Anzeige aufgenommen.
Die folgenden Abschnitte beschreiben die möglichen Kommando-Operanden.
Der Operand für die Definition der Zeichenkette definiert die zu suchende Zeichenkette.
Folgende Angaben sind möglich:
Operand | Erläuterung | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
* |
Findet die im vorangehenden Kommando
FIND angegebene Zeichenkette.
|
||||||||||||||||
'abc' |
Findet die Zeichenkette abc unabhängig
davon, ob sie in Klein- oder Großschreibung vorliegt.
|
||||||||||||||||
C'Abc' |
Findet exakt die hier Zeichenkette eingegebene Zeichenkette. | ||||||||||||||||
P'a(char)c' |
Findet die Zeichenkette, deren erstes Zeichen ein
a und deren drittes Zeichen ein c ist.
(char) steht für ein Sonderzeichen, das
als Platzhalterzeichen (Wildcard) fungiert. Bedeutung:
|
||||||||||||||||
T'abc' |
Findet die Zeichenkette abc unabhängig
davon, ob sie in Klein- oder Großschreibung vorliegt.
|
||||||||||||||||
X'D4A8' |
Findet die Zeichenkette, die dem Hexadezimalwert
D4A8 entspricht.
|
Der Operand für die Suche nach Übereinstimmungen gibt an, ob eine besondere Ausprägung der Zeichenkette gefunden werden soll. Folgende Optionen sind verfügbar:
Operand | Erläuterung |
---|---|
CHARS |
Ohne Einschränkungen (jede beliebige Ausprägung der Zeichenkette). |
PREFIX |
Nur die Ausprägungen, die die Vorsilbe (Präfix) eines Wortes sind. |
SUFFIX |
Nur die Ausprägungen, die die Nachsilbe (Suffix) eines Wortes sind. |
WORD |
Nur die Ausprägungen, die ein Wort bilden. |
Die Standardeinstellung ist CHARS
.
Der Operand für die Angabe der Suchrichtung gibt an, in welcher Richtung die Suche erfolgen soll.
Folgende Optionen sind verfügbar:
Operand | Erläuterung |
---|---|
ALL |
Jede beliebige Ausprägung der Zeichenkette (Suche in allen Richtungen). |
FIRST |
Erstes Vorkommen der Zeichenkette. |
LAST |
Letztes Vorkommen der Zeichenkette. |
NEXT |
Nächstes Vorkommen der Zeichenkette ab der Cursor-Position. |
PREV |
Vorheriges Vorkommen der Zeichenkette. |
Die Standardeinstellung ist NEXT
.
Der Operand für die Angabe des Zeilentyps gibt an, ob nur nach ausgeschlossenen oder nur nach eingeschlossenen Zeilen gesucht werden soll. Folgende Optionen sind verfügbar:
Operand | Erläuterung |
---|---|
X |
Nur nach Zeilen suchen, die von der Anzeige ausgeschlossen sind. |
NX |
Nur nach Zeilen suchen, die nicht von der Anzeige ausgeschlossen sind. |
Wenn dieser Operand weggelassen wird, durchsucht der Editor alle Daten nach der gegebenen Zeichenkette, in von der Anzeige ausgeschlossenen und nicht von der Anzeige ausgeschlossenen Zeilen. Wird die Zeichenkette in einer ausgeschlossenen Zeile gefunden, dann wird die Zeile wieder zur Anzeige gebracht.
Wenn Sie Zeilen oder einen Zeilenblock markiert haben, können Sie
den Block-Operanden benutzen, um den Suchbereich für das
FIND
-Kommando einzuschränken.
Beispiele für den Gebrauch des Block-Operanden:
Operand | Erläuterung |
---|---|
.X |
Suche ab der mit .X markierten Zeile bis
zum Ende der Daten.
|
.X .Y |
Suche ab der mit .X markierten Zeile bis
zur Zeile, die mit .Y markiert ist.
|
Dabei können X
und Y
eine beliebige
alphabetische oder eine aus vier Zeichen bestehende Zeichenkette sein.
Mit dem Spalten-Operanden können Sie die Suche nach der gegebenen Zeichenkette zwischen bestimmten Spalten eingrenzen. Beispiele für den Gebrauch des Spalten-Operanden:
Operand | Erläuterung |
---|---|
20 |
Suche nach der gegebenen Zeichenkette ab Spalte 20 (das erste Zeichen der Zeichenkette muss in Spalte 20 sein). |
20 40 |
Suche nach der gegebenen Zeichenkette zwischen Spalte 20 bis 40. |
F C'HILITE' X PREV
Suche nach dem vorangegangenen Vorkommen der Zeichenkette
HILITE
, und zwar exakt wie hier eingegeben. Suche nur nach
ausgeschlossenen Zeilen.
F P'RCV#' .X .Z 20 30
Suche nach der Zeichenkette, die mit RCV
beginnt, mit
einem numerischen vierten Zeichen zwischen dem Block .X .Z
, und
zwischen den Spalten 20 bis 30.
F X'6C' SUFFIX NX
Suche nach dem Zeichen, das dem Hexadezimalwert 6C
entspricht, und zwar nur in nicht von der Anzeige ausgeschlossenen Zeilen. Das
Zeichen muss am Ende eines Wortes stehen.
Command | Erläuterung |
---|---|
F C'HILITE' X PREV |
Suche nach dem ersten Vorkommen der Zeichenkette
HILITE , und zwar exakt wie hier eingegeben. Suche nur in
ausgeschlossenen Zeilen.
|
F P'RCV#' .X .Z 20
30 |
Suche nach der Zeichenkette, die mit RCV
beginnt, mit einem numerischen vierten Zeichen zwischen dem Block .X
.Z , und zwischen den Spalten 20 bis 30.
|
F X'6C' SUFFIX NX |
Suche nach dem Zeichen, das dem Hexadezimalwert
6C entspricht, und zwar nur in nicht von der Anzeige
ausgeschlossenen Zeilen. Das Zeichen muss am Ende eines Wortes stehen.
|
Falls die zu suchende Zeichenkette einzelne Hochkommazeichen
enthält, müssen Sie im FIND
-Kommando ein anderes
Trennzeichen benutzen, zum Beispiel doppelte Hochkommazeichen:
FIND C"'string'"
Mit dem Hauptkommando RFIND
können Sie
ein vorangegangenes FIND
-Kommando wiederholen.
Sie können eine gegebene Zeichenkette suchen und durch eine andere
Zeichenkette ersetzen, indem Sie das Hauptkommando
CHANGE
benutzen.
Falls die zu ersetzende Zeichenkette Apostrophe enthält, müssen Sie
im CHANGE
-Kommando ein anderes Trennzeichen
benutzen, zum Beispiel Anführungszeichen:
CHANGE "'string1'" "'string2'"
Beim CHANGE
-Kommando können Sie die
gleichen Operanden wie beim FIND
-Kommando benutzen.
Beim CHANGE
-Kommando bedeuten jedoch die
Richtungsoperanden ALL
, dass alle Vorkommen der angegebenen
Zeichenkette geändert werden sollen.
Nachdem der Ersetzungsvorgang abgeschlossen ist, erscheint im
Präfixbereich der geänderten Zeile die Meldung ==chg>
Dieser Abschnitt behandelt folgende Themen:
Kommando | Erläuterung |
---|---|
CHG 'LOW' 'HIGH' |
Ersetzt das erste Vorkommen von HIGH
(Groß-/Kleinschreibung wird nicht beachtet).
|
CHG C'OPS' 'SPF' .X .Y 28
32 all |
Ersetzt OPS (exakt wie hier eingegeben)
durch SPF ; ersetze all e
Vorkommen in dem mit .X und .Y markierten Block und
zwischen den Spalten 28 und 32.
Siehe auch Beispiel-Bildschirme weiter unten. |
Wiederholte
CHANGE -Kommandos: |
|
CHG * 'NEW' |
Ersetzt das nächste Vorkommen der Zeichenkette, die in
dem letzten CHANGE -Kommando angegeben wurde, durch
die neue Zeichenkette NEW .
|
CHG 'OLD' * |
Ersetzt OLD durch dieselbe neue
Zeichenkette, die im letzten CHANGE -Kommando
angegeben wurde.
|
Der folgende Bildschirm veranschaulicht das zweite Beispiel bevor das Kommando mit Enter ausgeführt wurde:
EDIT-NAT:NATLIB1(JOB1JCL)-Program->Struct-Free-77K ------------ Columns 001 072 COMMAND===> CHG C'OPS' 'SPF' .X .Y 28 32 ALL SCROLL===> CSR ****** ****************************** top of data ***************************** =cols> ----+----1----+----2----+----3----+----4----+----5----+----6----+----7-- 000010 RESET #JOBNAME(A8) 000020 RESET #FD(N3) #FL(A8) #FF(N3) 000030 RESET #TD(N3) #TL(A8) #TF(N3) 000040 COMPRESS *INIT-USER 'SM' INTO #JOBNAME LEAVING NO SPACE 000050 SET CONTROL 'WL60C6B005/010F' 000060 INPUT 'Enter PARAMETERS FOR LIBRARY COPY:' 000070 / 'FROM: DBID:' #FD 'FNR:' #FF 'LIB:' #FL 000080 / 'TO : DBID:' #TD 'FNR:' #TF 'LIB:' #TL 000090 // #JOBNAME JOB NAT,MSGCLASS=X,CLASS=G,TIME=1400 000100 /*JOBPARM LINES=2000 000110 //COPY EXEC PGM=NATBAT,TIME=60, 000120 // PARM=('DBID=9,FNR=33,FNAT=(,15),FSIZE=19', 000130 // 'EJ=OFF,IM=D,ID='';'',MAINPR=1,INTENS=1') .X //STEPLIB DD DISP=SHR,DSN=OPS.SYSF.ADALOAD 000150 // DD DISP=SHR,DSN=OPS.SYSF.LOAD 000160 // DD DISP=SHR,DSN=OPS.SYSF.PROD.INST * OPS INSTALL .Y // DD DISP=SHR,DSN=OPS.SYSF.SOURCE * OPS DOCUMENTS 000180 //DDCARD DD * Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12--- Help Split End Suspe Rfind Rchan Up Down Swap Left Right Curso |
Der folgende Bildschirm veranschaulicht das zweite Beispiel nachdem das Kommando mit Enter ausgeführt wurde:
EDIT-NAT:NATLIB1(JOB1JCL)-Program->Struct-Free-77K ------ 4 char 'OPS' changed COMMAND===> SCROLL===> CSR ****** ****************************** top of data ***************************** =cols> ----+----1----+----2----+----3----+----4----+----5----+----6----+----7-- 000010 RESET #JOBNAME(A8) 000020 RESET #FD(N3) #FL(A8) #FF(N3) 000030 RESET #TD(N3) #TL(A8) #TF(N3) 000040 COMPRESS *INIT-USER 'SM' INTO #JOBNAME LEAVING NO SPACE 000050 SET CONTROL 'WL60C6B005/010F' 000060 INPUT 'Enter PARAMETERS FOR LIBRARY COPY:' 000070 / 'FROM: DBID:' #FD 'FNR:' #FF 'LIB:' #FL 000080 / 'TO : DBID:' #TD 'FNR:' #TF 'LIB:' #TL 000090 // #JOBNAME JOB NAT,MSGCLASS=X,CLASS=G,TIME=1400 000100 /*JOBPARM LINES=2000 000110 //COPY EXEC PGM=NATBAT,TIME=60, 000120 // PARM=('DBID=9,FNR=33,FNAT=(,15),FSIZE=19', 000130 // 'EJ=OFF,IM=D,ID='';'',MAINPR=1,INTENS=1') .X //STEPLIB DD DISP=SHR,DSN=SPF.SYSF.ADALOAD ==chg> // DD DISP=SHR,DSN=SPF.SYSF.LOAD ==chg> // DD DISP=SHR,DSN=SPF.SYSF.PROD.INST * OPS INSTALL .Y // DD DISP=SHR,DSN=SPF.SYSF.SOURCE * OPS DOCUMENTS 000180 //DDCARD DD * Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12--- Help Split End Suspe Rfind Rchan Up Down Swap Left Right Curso |
Alle Vorkommen der Zeichenkette OPS
sind zwischen den
Zeile 140 und 170 und innerhalb der Spalten 28 durch die Zeichenkette
SPF
bis 32 ersetzt worden.
Beim Ändern von Zeichenketten sind die folgenden Kommandos
hilfreich: RFIND
(wiederholtes
FIND
) und RCHANGE
(wiederholtes CHANGE
)
Beispiel: Mit der Kommandosequenz
FIND 'abc' CHANGE 'abc' 'def' RFIND RCHANGE
können Sie Vorkommen einer bestimmten Zeichenkette finden und diese wahlweise mit relativ geringem Aufwand ändern.