FLD_OUT
注: 最後に指定された引数の後のコンマは省略可能です。
FASTREXX プロシージャーで使用できます。
出力レコードを入力レコードからのフィールドでオーバーレイします。出力レコードをリテラルでオーバーレイするための関数については OVLY_OUT を参照してください。ターゲット・フィールドの長さがソース・フィールド長を超過している場合、ソース・フィールドは埋め込み文字を使用して、指定した長さになるまで埋め込まれます。ターゲット・フィールド長がソース・フィールドより短い場合、ソース・フィールドの右側が切り捨てられます。また、正常に実行されると、OUTPOS の値も更新され、出力レコード内でオーバーレイされたフィールドの終わりから 1 バイト先の位置になります。
- Returns
- 単一のブランク
- i_start
- コピーされるフィールドの読み取りを開始する入力レコード内の位置 (バイト単位)。以下のように指定できます。
- 絶対位置
- 正の整数である必要があります。デフォルト値は 1 です。
- 現行 INPOS からの相対位置
- IPx または INx、あるいは Px または Nx として指定できます。正の整数になる必要があります。
- 現行 OUTPOS からの相対位置
- OPx または ONx として指定する必要があります。正の整数になる必要があります。
- i_length
- ソース・フィールドの長さ (バイト数)。負でない整数でなければなりません。デフォルトは 0 です。i_length を省略するかゼロを指定した場合、i_start の位置から、入力レコードの残りの部分が使用されます。このことは、現行の入力レコードの終わりを超えてソース・フィールドが読み取られることになる値を指定した場合にも適用されます。
- o_start
- コピーされるフィールドのオーバーレイを開始する出力レコード内の位置 (バイト単位)。o_start を省略するかゼロを指定した場合、 フィールドは出力レコードの終わりに追加されます。o_start が現行の出力レコード長より大きい場合、レコードには現行レコード長から指定された start 位置まで、指定されるかデフォルト設定された pad 文字が埋め込まれます。以下のように指定できます。
- 絶対位置
- 負でない整数でなければなりません。デフォルト値は 0 です。
- 現行 INPOS からの相対位置
- IPx または INx として指定する必要があります。正の整数になる必要があります。
- 現行 OUTPOS からの相対位置
- OPx または ONx、あるいは Px または Nx として指定できます。正の整数になる必要があります。
- o_length
- ターゲット・フィールドの長さ (バイト数)。ソース・フィールドの 長さ (i_length) にデフォルト設定されます。値が 0 の場合、ターゲット・フィールド長は、i_length と残りの出力レコード長のうち、大きい方の値になります。0 が o_start と o_length の両方に指定 された場合、i_length がターゲット長として使用されます。
- pad
- 埋め込み文字。デフォルトは、File Manager システムの「Processing Options (処理オプション)」パネルで設定した埋め込み文字 (オンラインで処理している場合) か、または SET 機能で指定した埋め込み文字 (バッチ実行している場合) です。現在の埋め込み設定が OFF であるか、指定されていないと、デフォルトの埋め込み文字はブランクになります。
例 1
入力レコードの桁 1 と 2 の文字を出力レコードの桁 3 と 4 にコピーします。
FLD_OUT(1,2,3,2)
例 2
入力レコードの桁 11 と 12 の文字を出力レコードの終わりに追加し、2 つのブランクを加えます。
FLD_OUT(11,2,0,4,' ')
例 3
入力レコード内で文字「AA」を検索し、これが検出された場合は、出力レコードの終わりにコピーします (OUTPOS がまだ出力レコードの終わりに設定されていると想定した場合)。
IF FLD_CO(10,2,C,'AA') Then
/* when successful, updates INPOS to 12 */
FLD_OUT(N2,2,P0,2)
/* copies from INPOS - 2, appends to end of output record */