行の分割と結合

レコードを 2 つに分割したり、2 つのレコードを 1 つに結合したりすることが必要となる場合があります。これは、特に、構造化されていないテキスト (REXX プロシージャーなど) を含むデータ・セット (これらのデータ・セットでは、1 レコードが 1 行のテキストを表しているため) を編集する場合に適しています。

注: SNGL または TABL 表示形式の場合、またはレコードをズームインする場合、レコードの分割または結合は使用できません。

1 つのレコードを 2 つに分割するには、以下のようにします。

  1. コマンド行に SPLT 基本コマンドを入力します。
  2. 分割したいレコード上で、次の行に「送りたい」桁位置にカーソルを置きます。
  3. [Enter] を押します。現在のレコードの下に新しいレコードが挿入され、カーソル位置からレコードの終わりまでのテキストがこのレコードの先頭に移動されます。

例えば、以下のレコードがカーソル位置 (下線付きの文字がある位置) で分割されると、次のようになります。

****** ****  Top of data  ****
000001 abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz
000002 abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz 

結果は以下のようになります。

****** ****  Top of data  ****
000001 abcdefghijklmnopqrstuvwxyz 
000002 abcdefghijklmnopqrstuvwxyz
000003 abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz 

2 つのレコードを結合する場合、1 番目のレコード上のカーソル位置からオーバーレイされて、2 番目のレコードのテキストが結合されます。

2 つのレコードを結合するには、以下のようにします。

  1. コマンド行に JOIN 基本コマンドを入力します。
  2. 次のレコードと結合したいレコード上で、2 番目のレコードのテキストを始めたい桁位置にカーソルを置きます。
  3. [Enter] を押します。現在のレコードの既存のテキストがオーバーレイされて、その後に続くレコードのテキストが結合されます。

    2 番目のレコードのテキストが 1 番目のレコードの残りのスペースに収まりきらない場合は、その部分があふれて、新しいレコードに移動します。

例えば、以下のレコード (長さ = 50) がカーソル位置 (下線付きの文字がある位置) で結合されると、次のようになります。

       ----+----1----+----2----+----3----+----4----+----5
000000 ****  Top of data  ****
000001 aaaaaaaaaaaaaaaaaaaaaaaaa 
000002 bbbbbbbbbbbbbbbbbbbbbbbbb
000003 cccccccccccccccccccccccccccccccccccccccccccccccccc
000004 ****  End of data  ****                           

結果は以下のようになります。

       ----+----1----+----2----+----3----+----4----+----5
000000 ****  Top of data  ****
000001 aaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbb
000002 cccccccccccccccccccccccccccccccccccccccccccccccccc
000003 ****  End of data  ****                            

ただし、これらのレコードが同じ位置に結合されると、以下のようになります。

       ----+----1----+----2----+----3----+----4----+----5
000000 ****  Top of data  ****
000001 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
000002 bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
000003 cccccccccccccccccccccccccccccccccccccccccccccccccc
000004 ****  End of data  ****                            

結果は以下のようになります。

       ----+----1----+----2----+----3----+----4----+----5
000000 ****  Top of data  ****
000001 aaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbb
000002 bbbbbbbbbbbbbbbbbbbbbbbbb
000003 cccccccccccccccccccccccccccccccccccccccccccccccccc
000004 ****  End of data  ****                            

データを 1 番目のレコードに誤ってオーバーレイする危険を回避するために、SPLTJOIN コマンドを使用することができます。このコマンドは SJ に省略できます。このコマンドは、レコード内のカーソル位置に基づいて、レコードを分割したり結合したりします。レコード内のカーソル位置が最後の非ブランク文字よりも後にある場合は、結合の処理が行われます。それ以外の場合は、レコードが分割されます。

注: KEYS コマンドを使用して SJ コマンドを機能キーに割り当てることが必要となる場合があります (コマンドを機能キーに割り当てる方法については「ISPF ユーザーズ・ガイド 第 1 巻」を参照してください)。