OVLY_VAR

1. Syntax

1  OVLY_VAR ( name  , overlay  ,
2.1! 0
2.1 start  , length  ,? ! C type  ,?  pad  )

(FASTREXX プロシージャーで使用できます。)

注: 最後に指定された引数の後のコンマは省略可能です。
指定された文字変数をストリングでオーバーレイします。ターゲット・フィールドの長さがリテラルの長さを超えている場合、ターゲット・フィールドは埋め込み文字を使用して指定した長さになるよう埋め込みが行われます。ターゲット・フィールドの長さがリテラルの長さより短い場合、次のようになります。
  • 文字オーバーレイは右側が切り捨てられ、エラーは起こりません。例えば、OVLY_VAR(MYVAR,'ABCD',1,2) は「AB」をオーバーレイします。
  • 数値オーバーレイの切り捨ては、エラーとみなされます。例えば、OVLY_VAR(MYVAR,500000,1,2,'B') は、指定された値を 2 バイトの 2 進数フィールドに収めることができないので、失敗します。

正常に実行されると、現行変数位置の値も更新され、変数内でオーバーレイされたフィールドの終わりから 1 バイト先の位置になります。

Returns
単一のブランク。
name
1 文字から 256 文字の変数 ID。変数名の突き合わせでは、大/小文字が区別されません。名前が検出されない場合、重大エラーが発生し、プロシージャーは終了します。システム文字変数またはシステム数値変数は使用できません。FASTREXX 変数の使用を参照してください。
overlay
結果がストリングになる式で、start および length で指定された変数の該当部分にオーバーレイされます。FASTREXX 処理に適したものとなるには、1 つのリテラル・ストリング、1 つのシンボル、またはブランクで区切られたシンボルかリテラル・ストリングのシーケンスである必要があります。リテラルの最初の文字がアンパーサンドで、それに続くリテラルが既存の文字変数、数値変数、または TALLY リテラルと一致する場合 (突き合わせでは大/小文字が区別されません)、タイプに応じて変数値に置換されます。例えば、タイプが文字で数値または TALLY 値が参照されている場合、リテラルは、先行ゼロなしの表示形式の数値になります。タイプが 2 進の場合、変数値は 2 進数に変換されます。
注: 変換エラーが発生することがあります。
start
ストリングのオーバーレイを開始する変数内の位置 (バイト単位)。start を省略した場合、ゼロを指定した場合、または現在の変数の長さより 1 大きい値を指定した場合、フィールドは変数の終わりに追加されます。start が現行の変数長より大きい場合、レコードには、現行の変数長から指定された開始位置まで、指定されるかデフォルト設定された埋め込み文字が埋め込まれます。以下のように指定できます。
絶対位置
出力データ・セットの最大長以下の、負ではない整数である必要があります。デフォルト値は 0 です。
現行変数位置からの相対位置
IPx または Inx、または OPx または ONx、または Px または Nx として指定する必要があります。負以外の整数になる必要があります。
length
変数のターゲット・フィールドの長さ (バイト数)。デフォルト:
文字フィールド
リテラルの長さ。値が 0 の場合、ターゲット・フィールド長が、ソース (リテラル) 長および残りの変数長より大きいことを示します。特に、start と length の両方に 0 を指定している場合、リテラルの長さがターゲットの長さとして使用されます。
パック 10 進数
前の関数によって入力レコードから判断された、最後にパックされた長さの値。例:
if FLD(1,P) = 2 then
OVLY_VAR(MYVAR,'5',1,,P)
FLD 関数によって判断された値を使用して、パック 10 進数の長さがデフォルト設定されます。前にパック 10 進数の長さが計算されていない場合、長さエラーが発生し、プロシージャーは終了します。
type
フィールドのデータ・タイプ。有効な値は、以下のとおりです。
B
2 進数。FLD_CO は 2 進数フィールドを符号付きと解釈します。
C
文字。これは、デフォルトです。比較では大/小文字が区別されます。
P
パック 10 進数。
U
フィールドを文字として解釈しますが、needle と比較する前に、これを大文字に変換します。
Z
ゾーン 10 進数。すべての COBOL 外部 10 進数変形を数値データとして解釈します。
pad
埋め込み文字。デフォルトは、File Manager の「Processing Option (処理オプション)」パネルで設定した埋め込み文字です。現在の埋め込み設定が OFF である場合、デフォルトの埋め込み文字はブランクになります。B、P、または Z などの数値タイプでは、数値フィールドを右寄せするために事前充てん文字が必要な場合、埋め込み文字は使用されません。この事前充てん文字は、常に、フィールド・タイプで必要な先行ゼロになります。

例 1

変数の列 1 と列 2 をアスタリスクに設定します。

    OVLY_VAR(MYVAR,'**',1,2)

例 2

2 バイトのパック 10 進値 2 を変数の終わりに追加します。

    OVLY_VAR(MYVAR,2,0,2,P)

例 3

変数でリテラルを検索し、該当するリテラルの下位 2 バイトを変数内の新規リテラルでオーバーレイします。

    If TESTC(MYVAR,'CU','AABB') Then
     OVLY_VAR(MYVAR,'CC',IP2,2)