バージョン 4.2.5
 —  エディタ  —

データの作成と変更

このセクションでは、メインコマンドおよび/または行コマンドを使用してすべてのオブジェクトタイプに使用できる機能について説明します。


行の挿入と削除

このセクションでは、行の挿入と削除に使用できる行コマンドとメインコマンドについて説明します。

使用可能な行コマンド

次の行コマンドを使用すると、エディタ画面で行の挿入および行の削除を実行できます。

行コマンド 説明
D この行を削除します。
Dn 次の n 行を削除します。
DD 削除するブロックの最初の行をマークします。 DD 行コマンドをもう 1 回実行してブロックを指定する必要があります。 2 番目の DD を入力した後に削除が実行されます。
DX .X というラベルの行を削除します。
DY .Y というラベルの行を削除します。
DX-Y .X というラベルの行から .Y というラベルの行まで、行のブロックを削除します。
I この行の後に 1 行挿入します。 エディタは挿入モードに切り替わります。 つまり、新しい行にデータを入力するか空白を入力して Enter キーを押すと、新しい行が自動的に挿入され、その位置にカーソルが置かれます。

挿入された行に新しいデータを入力しないで Enter キーを押すと、挿入モードが終了して空行が削除されます。 マスク行が定義されているときに MASK 設定が ON の場合は、このコマンドを発行するとマスク行が挿入されます。

nI この行の後に n 行挿入します。 新しい行にデータを入力できます。 Enter キーを押すと、使用されていない行が削除されますが、カーソルのある 1 行の空行は残ります(エディタは挿入モードのままです)。
TE エディタがテキスト入力モードに切り替わります。 つまり、この行を先頭としてエディタ画面が空白になり(行番号なし)、データを入力できるようになります。

Enter キーを押すと、残っていた空行は削除され、行番号が再表示されます。また、テキストは、設定されている余白内および指定されている行揃えに再フォーマットされます。

POWER コマンド」も参照してください。

W 1 行のウィンドウを開きます。 このウィンドウ行にデータを入力して Enter キーを押すと、新しい行は挿入されません。
Wn n 行のウィンドウを開きます。 Enter キーを押すと、使用されていない行がすべて削除されます。

POWER コマンド

テキスト入力モードへの切り替えには、POWER メインコマンドも使用できます。

POWER メインコマンドを発行すると、行番号のない空のエディタ画面が表示され、ここにデータを入力できます。 Enter キーを押すと、残っていた空行は削除され、行番号が再表示されます。また、テキストは、設定されている余白内および指定されている行揃えに再フォーマットされます。

DELETE コマンド

行の削除には、DELETE メインコマンドも使用できます。

例えば、次のコマンドを実行します。

DEL C'Abc' .X .Y 10 30 ALL

ラベル .X および .Y で区切られたブロック内で列 10 と 30 の間にある、入力した文字列 Abc に完全に一致する文字列を含む行がすべて削除されます。

上記の FIND コマンドで説明しているすべてのオペランドを指定できますが、ALL 方向オペランドを指定すると、指定した文字列を含むすべての行が削除されます。 条件を指定しないで DELETE コマンドを実行すると、現在の行が削除されます。

Top of page

行のコピー、移動、上書き、および繰り返し

次の行コマンドを使用すると、行またはデータブロックのコピー、移動、または繰り返しを行うことができます。

行コマンド 説明
A コピー行コマンド(CCnCC)または移動行コマンド(MMnMM)の対象行をマークします。 データはこの行のに挿入されます。
B コピー行コマンド(CCnCC)または移動行コマンド(MMnMM)の対象行をマークします。 データはこの行のに挿入されます。
C 行コマンド AB、または O でマークされた位置にこの行をコピーします。
Cn 行コマンド AB、または O でマークされた位置に次の n 行をコピーします。
CC コピーするブロックの先頭行をマークします。 CC をもう 1 回実行してブロックを指定する必要があります。 行コマンド AB、または O で対象をマークした後にコピーが実行されます。
CX .X というラベルの行をコピーします。 この行の後ろにデータを挿入します。
CY .Y というラベルの行をコピーします。 この行の後ろにデータを挿入します。
CX-Y .X というラベルの行から .Y というラベルの行に、行のブロックをコピーします。 この行の後ろにデータを挿入します。
M 行コマンド AB、または O でマークされた位置にこの行を移動します。
Mn 行コマンド A または B でマークされた位置に次の n 行を移動します。
MM 移動するブロックの最初の行をマークします。 MM をもう 1 回実行してブロックを指定する必要があります。 行コマンド AB、または O で対象をマークした後に移動が実行されます。
MX .X というラベルの行を移動します。 この行の後ろにデータを挿入します。
MY .Y というラベルの行を移動します。 この行の後ろにデータを挿入します。
MX-Y .X というラベルの行から .Y というラベルの行に、行のブロックを移動します。 この行の後ろにデータを挿入します。
O コピー行コマンド(CCnCC)または移動行コマンド(MMnMM)の対象行をマークします。 データはこの行にマージされます (境界内の空白文字のみ変更されます)。

データ上書きの例」も参照してください。

nO その行と次の n 行を、コピー行コマンド(CCnCC)または移動行コマンド(MMnMM)の対象行としてマークします。 移動またはコピーされた行はこれらの行とマージされます。つまり、これらの行の空白文字は上書きされます。

データ上書きの例」も参照してください。

OO コピー行コマンド(CCnCC)または移動行コマンド(MMnMM)の対象となる行のブロックの先頭行をマークします。 対象となる行のブロックの最後の行をマークするには OO コマンドがもう 1 つ必要です。

移動またはコピーされた行はこれらの行とマージされます。つまり、これらの行の空白文字は上書きされます。

データ上書きの例」も参照してください。

R この行を 1 回繰り返します。
nR この行を n 回繰り返します。
RR 繰り返すブロックの最初の行をマークします。 RR をもう 1 回実行してブロックを指定する必要があります。 2 番目の RR を入力した後に繰り返しが実行されます。
RRn 2 つの RRn 行コマンドで指定されたブロックを n 回繰り返します。

)(カッコ)行コマンド(次の項目を参照)を使用すると、指定した列の総数だけテキストが移動しますが、この移動は設定されている境界内に限られます。このため、移動したテキストの一部が失われる可能性があります。

) この行を左境界から 1 列右に移動します。
)n この行を n 列右に移動します。
))n n 列右に移動するブロックの最初の行をマークします。 ))n をもう 1 回実行してブロックを指定する必要があります。 2 番目の ))n コマンドを入力した後に移動が実行されます。 条件を指定しないで )) 行コマンドを 2 回発行すると、ブロックが 1 列右に移動します。
( この行を 1 列左に移動します。
(n この行を n 列左に移動します。
((n n 列左に移動するブロックの最初の行をマークします。 ((n をもう 1 回実行してブロックを指定する必要があります。 2 番目の ((n コマンドを入力した後に移動が実行されます。 条件を指定しないで (( 行コマンドを 2 回発行すると、ブロックが 1 列左に移動します。

>(大なり記号)または <(小なり記号)(次の項目を参照)を使用してデータを移動すると、最大で、設定されている境界内の次の空白以外の文字まで移動できます。

> この行を 1 列右に移動します。
>n この行を n 列右に移動します。
>>n n 列右に移動するブロックの最初の行をマークします。 >> をもう 1 回実行してブロックを指定する必要があります。 2 番目の >> コマンドを入力した後に移動が実行されます。 条件を指定しないで >> 行コマンドを 2 回発行すると、ブロックが 1 列右に移動します。
< この行を 1 列左に移動します。
<n この行を n 列左に移動します。
<<n n 列左に移動するブロックの最初の行をマークします。 << をもう 1 回実行してブロックを指定する必要があります。 2 番目の << コマンドを入力した後に移動が実行されます。 条件を指定しないで << 行コマンドを 2 回発行すると、ブロックが 1 列左に移動します。

データ上書きの例

上書き行コマンド(OOn、または OO)を使用すると、単一列のリストをマージして複数列のフォーマット(タブ形式)にできます。 上書き行コマンドは、コピー行コマンド(CCn、または CC)または移動行コマンド(MMnMM)と組み合わせて使用できます。

次の 2 つの図で、この機能について説明します。

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

上記の図では、行 180~210 が MM(移動)行コマンドでマークされています。 これらの行で、OO(上書き)行コマンドでマークされている行 140~170 を上書きします。

次の図は、最初の図に示されている行コマンドの結果を示しています。 行 140~170 の上に行 180~210 が上書きされています。

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

Top of page

データを含むウィンドウのコピーまたは移動

データを含むウィンドウを指定して、移動またはコピー操作を実行できます。 これにより、行の先頭からデータが始まらない行、または行の最後でデータが終わらない行をコピーまたは移動できます。 この機能は、エディタの行コマンドおよび/またはメインコマンドを使用して実行できます。

ウィンドウを定義すると、そのウィンドウの開始から終了までの間にある画面上のすべてのデータが、ウィンドウの一部となります。

このセクションでは、次のトピックについて説明します。

使用可能な行コマンド

行コマンド 説明
WS データウィンドウの開始をマークします。 カーソル位置は、データの読み込み元となる列を示します。 コマンドが入力された行にカーソルがない場合、ウィンドウは列 1 から開始されます。
WSn データウィンドウはこの行の列 n で開始されます。
WE データウィンドウの終わりをマークします。 WS と同じように機能します。 ウィンドウが同じ行で開始して終了する場合は、WE コマンドに対して WS コマンドを上書き入力します。 設定されたウィンドウの確認として、エディタにより接頭辞エリアにメッセージとして「WSWSn)」および「WEWEn)」が、またはウィンドウの開始と終了が同じ行の場合は「WW」が表示されます。

新しいウィンドウを定義する前に、RESET コマンドを使用して古いウィンドウをリセットし、コマンドの競合を防止してください。

WEn データウィンドウはこの行の列 n で終了します。
WC データウィンドウをコピーします。 カーソル位置は、コピーされたデータを挿入するためにこの行が分割される列を示します。
WCn この行を n 列で分割し、分割した行の間にデータをコピーします。
WM データウィンドウを移動します。 WC と同様に機能しますが、元のデータはコピー操作後に削除されます。
WMn この行を n 列で分割し、分割した行の間にデータを移動します。

使用可能なメインコマンド

メインコマンド 説明
WINDOW ウィンドウを定義します。 開始行と開始列および終了行と終了列は、コマンドパラメータで指定します。 パラメータが少なくとも 1 つは必要です。 次に例を示します。

WINDOW 5 10 24 13

行 5、列 24 で始まり、行 10、列 13 で終わるウィンドウを定義します。

WINDOW 5 10 24

行 5、列 24 で始まり、行 10、最後の列で終わるウィンドウを定義します。

WINDOW 5 10

行 5、最初の列で始まり、行 10、最後の列で終わるウィンドウを定義します。

WINDOW 5 5

行 5、最初の列で始まり、行 5、最後の列で終わるウィンドウを定義します。

CWINDOW WINDOW コマンドを使用して定義されたウィンドウをコピーします。 オプションパラメータでは、ウィンドウを挿入する行を指定します。 次に例を示します。

CWINDOW 5

行 5 の後にウィンドウをコピーします。

CWINDOW 5 24

列 24 で行 5 を分割し、分割された行の間にウィンドウをコピーします。

DWINDOW WINDOW コマンドで定義されたデータのウィンドウを削除します。
MWINDOW WINDOW コマンドで定義されたウィンドウを移動します。 CWINDOW コマンドと同様に機能しますが、元のウィンドウのデータはコピー操作後に削除されます。

データウィンドウの使用例

このセクションでは、行コマンドまたは対応するメインコマンドを使用して、データウィンドウを持つテキストを定義または移動する例について説明します。

この例では、次の手順 1 に示すテキストを使用し、Note that when...(行 8)で始まる文全体を、...copy operations(行 3)で終わる表示テキスト部分の、最初の文の後ろに移動します。

Start of instruction set行コマンドを使用してウィンドウを定義および移動するには

  1. 次に示すように、テキストを入力します。

    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. 移動するデータの先頭行である行 8 で行コマンド WS を入力し、対象とする列(単語 NoteN)にカーソルを置いて Enter キーを押します。

    行 8 の接頭辞エリアにメッセージ「WS55」が表示され、この列番号が選択されたことを示します。

    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. 移動するデータの最終行である行 10 で行コマンド WE を入力し、移動する最後の列(window の後のピリオド(.))にカーソルを移動して Enter キーを押します。

    行 10 の接頭辞エリアにメッセージ「WE37」が表示されます。

    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. 行コマンド WM を行 3 に入力し(データは次の行である行 4 に移動)、行 3 を分割する列(単語 This の前の空白)にカーソルを移動します。 Enter キーを押します。

    指定されたテキストセクションが移動します。

    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
    

次に示すコマンドシーケンスを使用すると、上記の手順と同じ結果が得られます。

Start of instruction setメインコマンドを使用してウィンドウを定義および移動するには

  1. 上記の手順 1 に示すテキストを入力します。

  2. コマンド行で、次のように入力します。

    WINDOW 8 10 55 37;MWINDOW 3 64

    指定されたテキストセクションが、上記の手順 4 に示すように移動します。

Top of page

水平方向および垂直方向の境界の設定

エディタには、特定の機能の実行範囲を示す水平方向および垂直方向の境界を設定するコマンドがあります。メインコマンド FINDCHANGECENTERORDERJLEFTJRIGHT、および対応する省略形(TCTOLJ、または RJ)などで実行される機能に適用されます。

このセクションでは、次のトピックについて説明します。

境界の設定

BNDS メインコマンドを使用すると、次の手順例で説明しているように、水平方向の境界を定義できます。

Start of instruction set境界を設定して表示するには

  1. 次のメインコマンドを発行します。

    BNDS 20 50

    水平方向の境界が列 20 と列 50 に設定されます。

  2. 現在の境界設定を表示するには、次の行コマンドを発行します。

    BNDS

    次の図は、BNDS 20 50 メインコマンドを実行し、その後に行 2 で BNDS 行コマンドを実行した結果を示しています。

    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
    

単一行または複数行に対するラベル付け

LABEL メインコマンドまたは対応する行コマンドを使用すると、現在の行(現在、編集エリアの最上位にある行)、または行のブロックにラベルを付けることができます。

Start of instruction setLABEL を使用して現在の行にラベルを付けるには

  1. 次のメインコマンドを発行します。

    LABEL  .X

    現在の行に .X というラベルが付きます。

  2. 行のブロックを指定する場合は、次に区切りが必要な行までスクロールし、次の行コマンドを発行します。

    LABEL .Y

    新しい現在の行に .Y というラベルが付き、行のブロックの最後の行であることを示します。

Start of instruction set行コマンドを使用して特定の行にラベルを付けるには

  1. ラベルを付ける先頭行の横で、次の行コマンドを発行します。

    .X

    指定された行に .X というラベルが付きます。

  2. ラベルを付ける最後の行の横で、次の行コマンドを発行します。

    .Y

    指定された行に .Y というラベルが付き、.X というラベルの付いた行で始まる行のブロックを示します。

ヒント:
行のラベル付けには、.START および .END などの任意の文字列を使用できます。

ラベルが付いた行の使用例については、「文字列の検索」および「文字列の置換」を参照してください。

Top of page

マスク行の定義

行挿入操作(例えば、行コマンド I または W を使用して)で追加された行に自動配置されるデータを定義できます。 このような行をマスク行と呼びます。 マスク行は、同じコード行または非常に似たコード行を複数記述する必要があるときに役に立ちます。

注意:
1 回の編集セッション中に定義できるマスク行は 1 つのみです。 新しいマスク行を定義すると、既存のマスク行定義は新しい値で自動的に更新されます。

Start of instruction setマスク行を定義および使用するには

  1. 次の行コマンドを発行します。

    MASK

    コマンドを入力した行の上に[=mask>]で示される空行が表示されます。

  2. マスク行として定義するデータをこの空行に入力し、Enter キーを押します。

    このマスク行は、新しいマスク行でマスクを更新するか、またはマスク機能を無効にするまで、現在のソースで有効です。

  3. 次のメインコマンドを発行します。

    MASK ON

    マスク機能が有効になります。 定義されたマスク行は、行挿入操作で追加されたすべての行に表示されます。

  4. 例えば、次のような行挿入コマンドを発行します。

    I2

    新しい行が 2 行、マスク行のテキストが指定されてソースに挿入されます。 マスク行のテキストは、挿入コマンドを使用して追加されたすべての行に指定されます。

  5. 新しい行のテキストを変更します。 テキストを変更しなかった場合、挿入された行は次回 Enter キーを押したときに削除されます。

  6. 必要に応じて、次のメインコマンドを使用してマスク機能を無効にします。

    MASK OFF

    MASK OFF コマンドはマスク機能を無効にしますが、マスク行の内容は削除しません。

メインコマンドの概要」の MASK の説明も参照してください。

Top of page

境界内でのデータの整列

ORDER メインコマンドを境界設定と組み合わせて使用すると、指定した行の段落付けを変更できます。 例えば、次のコマンドシーケンスを実行します。

BNDS 3;ORDER 5 20

行 5~20 が右に移動し、列の開始が列 3 からになります。

注意:
整列した行の最後が右境界を越えた場合、この行は自動的に分割されます。

左に移動したデータを再度揃えるには、JLEFT コマンドを使用します。

また、行コマンドを使用して、行またはデータブロックの段落付けを変更することもできます。 この場合も、行の最後が右境界を越えた場合、この行は自動的に分割されます。

行コマンド 説明
TF コマンドが入力された行のデータを、パラグラフの最後、または右境界が指定された次の空行に整列します。 この行コマンドは、右境界を指定する数値を使用して入力できます。例えば、行コマンド TF50 を実行すると、データが列 50 に整列します。
TO 整列する 1 行をマークします。
TOO 整列するデータブロックの先頭行をマークします。 TOO 行コマンドをもう 1 回実行し、ブロックを指定する必要があります。 2 番目の TOO を発行した後に整列が実行されます。

JUSTIFY コマンドを使用すると、設定されている境界内でデータを整列し、左境界、右境界、または左右の境界にデータを揃えることができます。 例えば、次のコマンドを実行します。

BNDS 6 60;JUSTIFY BOTH

列 5 と 60 への桁揃えが有効になります。 整列を実行するには、データのブロックを 2 つの TOO 行コマンドでマークします。

また、単一行を 2 つに分割できる行コマンドも提供されています。 分割する行の接頭辞エリアに行コマンド S を入力し、分割を実行する位置にカーソルを移動して Enter キーを押します。

Top of page

データの中央揃え

エディタには、設定されている境界内の指定したデータを中央揃えにできるコマンドも用意されています。 例えば、次のシーケンスを実行します。

BNDS 5 60;CENTER 5 15

行 5 から 15 までの間で列 5~60 の範囲にあるデータが中央揃えになります。

注意:
中央に配置されるのは、すでに境界内にあるテキストのみです。 境界より左および右にあるテキストには影響がありません。

代わりに、行コマンドを使用して中央揃えの機能を実行することもできます。

行コマンド 説明
TC 設定されている境界内のこの行を中央揃えにします。
TCC 中央揃えにするデータブロックの先頭行をマークします。 TCC 行コマンドをもう 1 回発行し、ブロックを指定する必要があります。 2 番目の TCC コマンドを発行した後に中央揃えが実行されます。

Top of page

データの位置合わせ

画面上の行またはデータブロックを再配置するためのメインコマンドおよび行コマンドがいくつか用意されています。再配置は、水平方向の境界設定(BNDS メインコマンド)に従います。「水平方向および垂直方向の境界の設定」セクションを参照してください。

JLEFT メインコマンドと JRIGHT メインコマンドを使用すると、指定したデータがそれぞれ左境界および右境界に揃えられます。 例えば、次のシーケンスを実行します。

BNDS 16 80;JLEFT 140 170

行 140~170 で列 16 と 80 の間にあるデータが列 16 に揃えられます。

次の図でこの例を説明します。

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

次の図は、前の画面のコマンド行に表示されているコマンドの実行結果を示しています。

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

次のシーケンスを実行します。

BNDS 10;JRIGHT 15

行 15 の列 10 の右にあるデータが、エディタ画面の最後の列(端末画面の列 88)で画面端に揃えられます。

代わりに、次の表にリストされている行コマンドのいずれかを使用して、行またはデータブロックを行揃えすることもできます。

行コマンド Explanation
LJ この行で設定されている境界内のデータを左境界に揃えます。
LJJ BNDS メインコマンドを使用して設定されている境界内で、データブロックの先頭行をマークし、そのブロックを左に揃えます。 LJJ 行コマンドをもう 1 回実行してブロックを指定する必要があります。 2 番目の LJJ を発行した後に行揃えが実行されます。
RJ この行で設定されている境界内のデータを右境界に揃えます。
RJJ BNDS メインコマンドを使用して設定されている境界内で、データブロックの先頭行をマークし、そのブロックを右に揃えます。 RJJ 行コマンドをもう 1 回実行してブロックを指定する必要があります。 2 番目の RJJ を発行した後に行揃えが実行されます。

また、左境界にデータを揃えたり、JUSTIFY コマンドと組み合わせて左右の境界間にデータを整列したりすることもできます。

例えば、次のコマンドシーケンスを実行します。

BNDS 10 60;JUSTIFY LEFT

左境界に桁揃えすることができます。 2 つの TOO 行コマンドを使用してデータのブロックをマークし(前述を参照)、列 10 と 60 の間のデータを再フォーマットして列 10 に揃えます。

Top of page

物理タブと論理タブの使用

このセクションでは、TABS メインコマンドおよび/または TABS 行コマンドを使用してタブ設定を制御する方法を説明します。

このセクションのタブ機能の例では、タブ文字としてアンパサンド(&)を使用しています。列位置の表示には COLS 行コマンドが発行されています。

このセクションでは、次のトピックについて説明します。

TABS メインコマンドの使用

TABS ON メインコマンドを発行すると、エディタプロファイルに設定されている標準タブ位置がオンになり、プロファイルに標準のタブが表示されます。 タブ機能を再度オフにするには、TABS OFF メインコマンドを発行します。

TABS に適用されるコマンド構文の詳細については、「メインコマンドの概要」の関連セクションを参照してください。

このセクションでは、次のトピックについて説明します。

標準タブ位置の設定

例えば、タブ機能をオンにしてプロファイルの標準タブ位置を列 10、20、30、40、および 50 に設定するには、メインコマンド TABS 10 20 30 40 50 を発行します。

論理タブ文字の設定

例えば、タブ機能をオンにして論理タブ文字を &(アンパサンド)に設定するには、メインコマンド TABS & を発行します。

論理タブ文字をデータの前に挿入すると、データを入力して特定のタブ位置に自動的に移動できます。 タブ文字を 1 文字付けるとデータは次のタブ位置に移動し、タブ文字を 2 文字付けると 2 番目のタブ位置に移動します。

行揃えパラメータの設定

タブ位置の他に、TABS メインコマンドでは次のパラメータを指定できます。

パラメータ 説明
DECIMAL タブ位置にデータの小数点が来るようにデータを整列します。

例 3 - TABS DECIMAL」も参照してください。

LEFT タブ位置の左にデータを整列します。

例 1 - タブ位置」も参照してください。

RIGHT タブ位置の右にデータを整列します。

例 2 - TABS RIGHT」も参照してください。

現在の論理タブ文字およびシフトパラメータ(タブ位置を除く)を表示するには、PROFILE メインコマンドを発行します。

TABS 行コマンドの使用

任意の行で TABS 行コマンドを発行すると、エディタプロファイルに設定されている現在のタブ位置がその行に表示されます。論理タブ文字が設定されていない場合は、アスタリスク(*)でマークされます。 このコマンドを実行してもタブ機能はオンになりません。

例えば、メインコマンド TABS 10 20 30 40 50 を使用して設定された位置を表示するには、TABS 行コマンドを発行します。

これにより、現在のタブ位置が次のように表示されます。

=tabs>             *        *        *        *         *         *
  

複数の論理タブ文字と行揃えパラメータの混在の設定

特定の列および特定のシフトでデータにタブを設定できるよう、複数の論理タブ文字の使用と行揃えパラメータの混在が可能です。

論理タブ文字を複数設定するには、TABS 行コマンドを発行し、各アスタリスク(*)を特殊文字で上書きします。 これらの論理タブ文字のいずれかを先頭に付けてデータを入力すると、そのデータは対応する列にタブ設定されます。

位置揃えパラメータの混在を設定するには、左、右、または小数点に整列する各論理タブ文字の右に L(左)、R(右)、または D(小数点)を入力します。

例 4 - 位置揃えの混在」も参照してください。

例 1 - タブ位置

コマンド

TABS 10 20 40 LEFT

タブ列 10、20、および 40 で左詰めの論理タブを有効にします。 Enter キーを押すと、入力テキスト行

&abc &def &ghi

は、次のように表示されます。

=cols> ----+----1----+----2----+----3----+----4----+----5----+----6
                abc       def                 ghi

例 2 - TABS RIGHT

コマンド

TABS RIGHT

右詰めの論理タブを有効にします。 Enter キーを押すと、入力テキスト行

&abc &def &ghi

は、次のように表示されます。

=cols> ----+----1----+----2----+----3----+----4----+----5----+----6
              abc       def                 ghi

例 3 - TABS DECIMAL

コマンド

TABS DECIMAL

タブ位置に小数点を揃える論理タブを有効にします。 Enter キーを押すと、入力テキスト行

&15.27$ &16.3 EUR &13 IS

は、次のように表示されます。

=cols> ----+----1----+----2----+----3----+----4----+----5----+----6
              15.27$    16.3 EUR             13 IS

例 4 - 位置揃えの混在

次のコマンドを発行します。

TABS 10 20 30 40 50

次に、TABS 行コマンドを発行します。 これにより、現在のタブ位置が次のように表示されます。

=tabs>          *         *         *         *         *

必要に応じて、LR、または D を各タブ位置の横に入力します(タブ位置を指定しなければ、最後の TAB コマンドの値が使用されます)。

=tabs>          *R        *D        *D        *D        *L

Enter キーを押すと、入力テキスト行

&start &0.01 &0.02 &0.03 &end

は、次のように表示されます。

=cols> ----+----1----+----2----+----3----+----4----+----5----+----6
            start        0.01      0.02      0.03       end

例 5 - タブ設定記号としての空白の使用

次のコマンドを発行します。

TABS ' '

1 つの空白をタブ文字として有効にします。 つまり、1 つの空白で分割された単語がタブ設定されます。 Enter キーを押すと、入力テキスト行

this is a blank tabulation

は、次のように表示されます。

=cols> ----+----1----+----2----+----3----+----4----+----5----+----6
                this      is        a         blank     tabulation

Top of page

アルファベット順での行のソート

データ行は、ソート条件に従って、アルファベット順に昇順または降順でソートできます。 例えば、次のコマンドを実行します。

SORT 10 15

列 10 から列 15 までの文字に従って、ソース内のすべての行が昇順にソートされます。

例えば、行のブロックのみをソートするには、ブロックの開始行および終了行にそれぞれ .X および .Y でラベルを付けます。 次のコマンドを実行すると、

SORT .X .Y D

.X および .Y でマークされたブロック内のすべての行が降順にソートされます。

例えば、列 5 から列 20 までの文字を使用して行のブロックをソートするには、ブロックの開始行および終了行にそれぞれ .X および .Y でラベルを付けます。 次のコマンドを実行します。

SORT 5 20 .X .Y

列 5 から列 20 までの文字に従って、.X および .Y でマークされたブロック内のすべての行が昇順でソートされます。

Top of page

文字列の検索

特定の文字列を検索するには、文字列を定義するオペランド、検索対象エリア、および検索の方向を指定して FIND メインコマンドを使用します。 カーソルは、該当文字列の最初の文字の上に置かれます。 文字列を含む行が表示されていない場合は、表示されるようになります。

次のセクションでは、使用可能なコマンドオペランドについて説明します。

文字列定義オペランド

文字列オペランドでは検索対象の文字列を定義します。

次のいずれかを指定できます。

オペランド 説明
* 前の FIND コマンドで指定した文字列を検索します。
'abc' 文字列が大文字か小文字かに関係なく、文字列 abc を検索します。
C'Abc' 入力した文字列に完全に一致する文字列を検索します。
P'a(char)c' 最初の文字が a で、3 番目の文字が c である文字列を検索します。 (char) は、ワイルドカード文字として動作する特殊文字を表します。ワイルドカード文字には次の意味があります。
= 任意の文字
§ 英文字
# 数字
$ 特殊文字
^ 空白以外の文字
- 数字以外の文字
< 小文字
> 大文字
T'abc' 文字列が大文字か小文字かに関係なく、文字列 abc を検索します。
X'D4A8' 16 進数 D4A8 に対応する文字列を検索します。

文字列一致オペランド

文字列一致オペランドでは、文字列の特殊なオカレンスを検索するかどうかを指定します。 次のオプションを使用できます。

オペランド 説明
CHARS 制限なし(文字列の任意の位置)
PREFIX 単語の接頭辞に該当する位置のみ
SUFFIX 単語の接尾辞に該当する位置のみ
WORD 単語に該当する位置のみ

デフォルトは CHARS です。

方向オペランド

方向オペランドでは検索操作の方向を指定します。

次のオプションを使用できます。

オペランド 説明
ALL 文字列の任意のオカレンス(全方向検索)
FIRST 文字列の最初のオカレンス
LAST 文字列の最後のオカレンス
NEXT カーソル位置を開始位置とする文字列の次のオカレンス
PREV 文字列の前のオカレンス

デフォルトは NEXT です。

行タイプオペランド

この行タイプオペランドでは、非表示の行または表示されている行のみを検索対象とするかどうかを指定します。 次のオプションを使用できます。

オペランド 説明
X 非表示の行のみを検索します。
NX 表示されている行のみを検索します。

このオペランドを省略すると、表示されている行および非表示の行のすべてのデータを対象に、指定した文字列を検索します。 非表示の行で文字列が検出された場合は、その行を表示するように切り替えられます。

ブロックオペランド

行または行のブロックにラベルが付けてある場合は、ブロックオペランドを使用して FIND コマンドの検索エリアを制限できます。

ブロックオペランドの 2 つの例を次に示します。

オペランド 説明
.X .X というラベルの行からデータの最後まで検索します。
.X .Y .X というラベルの行から .Y というラベルの行まで検索します。

ここで、X および Y には任意の英字または 4 文字の文字列を使用できます。

列オペランド

列オペランドを使用すると、指定した文字列の検索を特定の列内に制限できます。 列オペランドの 2 つの例を次に示します。

オペランド 説明
20 指定した文字列を列 20 から検索します(文字列の最初の文字が列 20 にあることが必要)。
20 40 指定した文字列を列 20~40 の間で検索します。

FIND コマンドの例

F C'HILITE' X PREV

入力した文字列に完全に一致する文字列 HILITE の前のオカレンスを検索します。検索対象は非表示の行のみです。

F P'RCV#' .X .Z 20 30

RCV で始まり 4 文字目が数字の文字列を、ブロック .X .Z 内の列 20~30 で検索します。

F X'6C' SUFFIX NX

16 進数 6C に該当する文字を、表示されている行のみで検索します。 この文字で単語が終わっている必要があります。

コマンド 説明
F C'HILITE' X PREV 入力した文字列に完全に一致する文字列 HILITE の前のオカレンスを検索します。検索は非表示の行のみです。
F P'RCV#' .X .Z 20 30 RCV で始まり 4 文字目が数字の文字列を、ブロック .X .Z 内の列 20~30 で検索します。
F X'6C' SUFFIX NX 16 進数 6C に該当する文字を、表示されている行のみで検索します。 文字の最後は単語である必要があります。

検索する文字列に一重引用符が含まれている場合は、FIND コマンドで別のセパレータを使用する必要があります。例えば、二重引用符を使用すると次のようになります。

FIND C"'string'"

RFIND メインコマンドを使用すると、前回の FIND コマンドを繰り返すことができます。

Top of page

文字列の置換

CHANGE メインコマンドを使用すると、指定した文字列を検索し、その文字列を別の文字列に置換できます。

置換する文字列にアポストロフィが含まれている場合は、CHANGE コマンドで別のセパレータを使用する必要があります。例えば、二重引用符を使用すると次のようになります。

CHANGE "'string1'" "'string2'"

CHANGE コマンドでは、FIND コマンドと同じオペランドを使用できます。 ただし、CHANGE コマンドの場合、ALL 方向オペランドを使用すると、指定した文字列のすべてのオカレンスが変更されます。

置換操作の実行後、変更のあった行の接頭辞エリアにはメッセージ「==chg>」が表示されます。

このセクションでは、次のトピックについて説明します。

CHANGE コマンドの例

コマンド 説明
CHG 'LOW' 'HIGH' LOW の最初のオカレンスを HIGH に変更します(大文字および小文字は無視)。
CHG C'OPS' 'SPF' .X .Y 28 32 all OPS(入力した文字列に完全に一致)を SPF; に変更します。変更されるのは、.X および .Y というラベルが付けられたブロックの列 28~32 にあるすべてのオカレンスです。

次の画面例も参照してください。

CHANGE コマンドの繰り返し:
 
 
CHG * 'NEW' 最後の CHANGE コマンドで指定した文字列の次のオカレンスを、新しい文字列 NEW に置換します。
CHG 'OLD' * 文字列 OLD を、最後の CHANGE コマンドで指定した文字列と同じ新しい文字列に置換します。

次の画面は、2 番目の例で Enter キーを押してコマンドを実行する前を示しています。

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

次の画面は、2 番目の例で Enter キーを押してコマンドを実行した後を示しています。

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

行 140~170 で列 28~32 の範囲にある文字列 OPS のすべてのオカレンスが、文字列 SPF に置換されています。

RFIND コマンドと RCHANGE コマンド

文字列を変更する場合は、RFINDFIND の繰り返し)および RCHANGECHANGE の繰り返し)機能を使用すると便利です。例えば、次のシーケンスを実行します。

FIND 'abc'
  CHANGE 'abc' 'def'
  RFIND
  RCHANGE

これらのコマンドにより、特定の文字列のオカレンスを検索し、さらに比較的少ない労力でその文字列を変更できます。

また、これらのコマンドを PF キーに割り当てることもできます。

Top of page