行の分割と結合
レコードを 2 つに分割したり、2 つのレコードを 1 つに結合したりすることが必要となる場合があります。これは、特に、構造化されていないテキスト (REXX プロシージャーなど) を含むデータ・セット (これらのデータ・セットでは、1 レコードが 1 行のテキストを表しているため) を編集する場合に適しています。
注: SNGL または TABL 表示形式の場合、またはレコードをズームインする場合、レコードの分割または結合は使用できません。
1 つのレコードを 2 つに分割するには、以下のようにします。
- コマンド行に SPLT 基本コマンドを入力します。
- 分割したいレコード上で、次の行に「送りたい」桁位置にカーソルを置きます。
- [Enter] を押します。現在のレコードの下に新しいレコードが挿入され、カーソル位置からレコードの終わりまでのテキストがこのレコードの先頭に移動されます。
例えば、以下のレコードがカーソル位置 (下線付きの文字がある位置) で分割されると、次のようになります。
****** **** Top of data ****
000001 abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz
000002 abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz
結果は以下のようになります。
****** **** Top of data ****
000001 abcdefghijklmnopqrstuvwxyz
000002 abcdefghijklmnopqrstuvwxyz
000003 abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz
2 つのレコードを結合する場合、1 番目のレコード上のカーソル位置からオーバーレイされて、2 番目のレコードのテキストが結合されます。
2 つのレコードを結合するには、以下のようにします。
- コマンド行に JOIN 基本コマンドを入力します。
- 次のレコードと結合したいレコード上で、2 番目のレコードのテキストを始めたい桁位置にカーソルを置きます。
- [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 巻」を参照してください)。