Daten anlegen und ändern

Dieser Abschnitt beschreibt die Funktionen, die bei allen Objekttypen zur Verfügung stehen, bei denen Hauptkommandos oder Zeilenkommandos verwendet werden können.


Zeilen einfügen und löschen

Dieser Abschnitt beschreibt die Zeilenkommandos und Hauptkommandos, die zum Einfügen und Löschen von Zeilen zur Verfügung stehen.

Verfügbare Zeilenkommandos

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 MASK ist auf ON gesetzt, wird die Maskenzeile eingefügt, wenn Sie dieses Kommando absetzen.

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.

POWER-Kommando

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.

DELETE-Kommando

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.

Zeilen kopieren, verschieben, überlagern und wiederholen

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 ) (siehe weiter unten) verschieben Text um die angegebene Anzahl an Spalten, jedoch nur innerhalb der angegebenen Begrenzungen, deshalb ist es möglich, dass der Text teilweise verschwindet.

) 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 > (größer als) oder < (kleiner als) benutzen (siehe unten), um Daten zu verschieben, dann ist das Verschieben innerhalb der gesetzten Begrenzungen maximal bis zum nächsten Zeichen, das kein Leerzeichen ist, möglich.

> 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.

Beispiel für das Überlagern von Daten

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

Ein Fenster mit Daten kopieren oder verschieben

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:

Verfügbare Zeilenkommandos

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 RESET-Kommando zurücksetzen, um einen Kommandokonflikt zu vermeiden.

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.

Verfügbare Hauptkommandos

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:

WINDOW 5 10 24 13

Definiert ein Fenster, das in Zeile 5/Spalte 24 beginnt und in Zeile 10/Spalte 13 endet.

WINDOW 5 10 24

Definiert ein Fenster, das in Zeile 5/Spalte 24 beginnt und in Zeile 10/letzte Spalte endet.

WINDOW 5 10

Definiert ein Fenster, das in Zeile 5/erste Spalte beginnt und in Zeile 10/letzte Spalte endet.

WINDOW 5 5

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:

CWINDOW 5

Kopiert das Fenster nach Zeile 5.

CWINDOW 5 24

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.

Beispiel für die Benutzung eines Datenfensters

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.

Beginn der AnweisungslisteUm ein Fenster mit Zeilenkommandos zu definieren und zu verschieben:

  1. 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
    
  2. 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
    
  3. 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
    
  4. 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.

Beginn der AnweisungslisteUm ein Fenster mit Hauptkommandos zu definieren und zu verschieben:

  1. Geben Sie den Text ein, der unter Schritt 1 weiter oben abgebildet ist.

  2. 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.

Horizontale und vertikale Bereichsgrenzen einstellen

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:

Bereichsgrenzen einstellen

Mit dem Hauptkommando BNDS können Sie die horizontalen Bereichsgrenzen so wie in der nachfolgenden Beispiel-Anleitung beschrieben einstellen.

Beginn der AnweisungslisteUm Bereichsgrenzen einzustellen und anzuzeigen:

  1. Setzen Sie folgendes Hauptkommando ab:

    BNDS 20 50

    Die horizontalen Grenzen werden bei den Spalten 20 und 50 gesetzt.

  2. 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
    

Einzelne oder mehrere Zeilen markieren

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.

Beginn der AnweisungslisteUm aktuelle Zeilen mit LABEL zu markieren:

  1. Setzen Sie das folgende Hauptkommando ab:

    LABEL .X

    Die aktuelle Zeile wird mit .X markiert.

  2. 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.

Beginn der AnweisungslisteUm bestimmte Zeilen mittels Zeilenkommandos zu markieren:

  1. Setzen Sie neben der ersten zu markierenden Zeile folgendes Zeilenkommando ab:

    .X

    Die angegebene Zeile wird mit .X markiert.

  2. 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.

Maskenzeile definieren

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.

Beginn der AnweisungslisteUm eine Maskenzeile zu definieren und zu benutzen:

  1. Setzen Sie folgendes Zeilenkommando ab:

    MASK

    Über der Zeile, in der Sie das Kommando eingegeben haben, erscheint eine Leerzeile mit =mask>.

  2. 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.

  3. 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.

  4. 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.

  5. Ä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.

  6. 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).

Daten zwischen Bereichsgrenzen anordnen

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.

Daten zentrieren

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.

Daten ausrichten

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.

Physischen oder logischen Tabulator benutzen

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:

Hauptkommando TABS benutzen

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:

Standard-Tabulatorpositionen einstellen

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.

Logisches Tabulatorzeichen einstellen

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.

Ausrichtungsparameter einstellen

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.

Zeilenkommando TABS benutzen

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>             *        *        *        *         *         *
  

Mehrere logische Tabulatorzeichen und gemischte Ausrichtungsparameter einstellen

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.

Beispiel 1 - Tab Positionen

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

Beispiel 2 - TABS RIGHT

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

Beispiel 3 - TABS DECIMAL

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

Beispiel 4 - Gemischte Ausrichtung

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

Beispiel 5 - Leerzeichen als Tabulationssymbol

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

Zeilen in alphabetischer Reihenfolge sortieren

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.

Zeichenkette suchen

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.

Operand für die Definition der Zeichenkette

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:
= beliebiges Zeichen
§ alphabetisches Zeichen
# numerisches Zeichen
$ Sonderzeichen
^ nicht-Leerzeichen
- nicht-numerisches Zeichen
< Zeichen in Kleinschreibung
> Zeichen in Großschreibung
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.

Operand für die Suche nach Übereinstimmungen

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.

Operand für die Angabe der Suchrichtung

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.

Operand für die Angabe des Zeilentyps

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.

Block-Operand

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.

Spalten-Operand

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.

Beispiele für das FIND-Kommando

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.

Zeichenkette ersetzen

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:

Beispiele für das CHANGE-Kommando

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 alle 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.

Kommandos RFIND und RCHANGE

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.