参照修飾子を使用することにより、USAGE DISPLAY、DISPLAY-1、または NATIONAL を持つデータ項目のサブストリングを参照します。 参照修飾子を使用すると、組み込み関数によって戻される英数字または国別文字ストリングのサブストリングを参照することもできます。
以下の例は、参照修飾子を使用して、Customer-Record という名前のデータ項目の 20 文字のサブストリングを参照する方法を示しています。
Move Customer-Record(1:20) to Orig-Customer-Name
データ項目の直後に括弧で囲んだ参照修飾子をコーディングします。 例に示されるように、参照修飾子は、次の順で、コロンで分離された 2 つの値を含むことができます。
USAGE DISPLAY を持つ項目の参照修飾子の位置および長さは、1 バイト文字で表されます。 USAGE DISPLAY-1 または NATIONAL を持つ項目の参照修飾子の位置および長さは、それぞれ DBCS 文字位置および国別文字位置で表されます。
参照修飾子の長さを省略すると (先頭文字の序数位置とその後のコロンのみをコーディングすると)、サブストリングは項目の最後まで延長されます。可能であれば、より単純でエラーになりにくいコーディング手法として、長さを省略してください。
参照修飾子を使用すると、英数字グループ、英数字編集データ項目、数字編集データ項目、表示浮動小数点データ項目、およびゾーン 10 進数データ項目を含め、USAGE DISPLAY データ項目のサブストリングを参照できます。 これらのデータ項目のいずれかを参照修飾した場合、結果はカテゴリー英数字になります。 英字データ項目を参照修飾した場合、結果はカテゴリー英字になります。
参照修飾子を使用すると、国別グループ、国別編集データ項目、数字編集データ項目、国別浮動小数点データ項目、および国別 10 進数データ項目を含め、 USAGE NATIONAL データ項目のサブストリングを参照することができます。 これらのデータ項目のいずれかを参照修飾した場合、結果はカテゴリー国別になります。例えば、次のように国別 10 進数データ項目を定義するとしましょう。
01 NATL-DEC-ITEM Usage National Pic 999 Value 123.
NATL-DEC-ITEM はカテゴリー数値なので、NATL-DEC-ITEM を算術式で使用できます。 しかし、NATL-DEC-ITEM(2:1) (国別文字 2、16 進数表記では NX"0032") はカテゴリー国別なので、これを算術式で使用することはできません。
参照修飾子を使用すると、可変長項目を含め、テーブル項目のサブストリングを参照することができます。 テーブル記入項目のサブストリングを参照するには、参照修飾子の前に添え字式をコーディングします。 例えば、PRODUCT-TABLE は、正しくコーディングされた 文字ストリング・テーブルであると想定しましょう。D をテーブル内の 2 番目のストリングの 4 文字目に移動するために、次の ステートメントをコーディングできます。
MOVE 'D' to PRODUCT-TABLE (2), (4:1)
参照修飾子の中の 2 つの値の一方または両方を、変数または算術式として コーディングできます。
数字関数 ID は、算術式を使用できる場所ならどこでも使用できるので、左端文字位置または長さ (あるいはその両方) として、数字関数 ID を参照修飾子の中でコーディングできます。
参照修飾子の中のそれぞれの数値は少なくとも 1 の値でなければなりません。 サブストリングの最後を越えて参照することがないよう、2 つの数値の合計が、 データ項目の全長を 2 文字位置以上超えるようなことがあってはなりません。
左端の文字位置または長さ値が固定小数点の非整数の場合には、整数を作成するために切り捨てが行われます。浮動小数点の非整数の場合には、整数を作成するための丸めが行われます。
以下のオプションを使用すると、範囲外の参照修飾子が検出され、実行時メッセージによって違反が示されます。
関連タスク
テーブル内の項目の参照