Rational Developer for System z
COBOL for Windows バージョン 7.5 言語解説書


参照変更

参照変更 は、 データ項目の左端の文字位置 (開始桁) とそのデータ項目の長さ (オプション) を指定することによってデータ項目を定義するものです。

フォーマット
構文図を読む構文図をスキップする>>-+-データ名-1-------------------------------+----------------->
   '-FUNCTION--関数名-1--+------------------+-'  
                         |    .--------.    |    
                         |    V        |    |    
                         '-(----引数-1-+--)-'    
 
>--(--左端の文字の開始位置--:--+------+--)---------------------><
                               '-長さ-'     
 
データ名-1
使用法 DISPLAY、DISPLAY-1、または NATIONAL を指定して明示的または暗黙的に記述されているデータ項目を参照しなければなりません。国別グループ項目は、国別カテゴリーの基本データ項目として処理されます。

データ名-1 は修飾したり添え字を付けたりすることができます。データ名-1 をウィンドウ化日付フィールドにすることはできません。

関数名-1
英数字または国別関数を参照しなければなりません。
左端の文字の開始位置
算術式でなければなりません。 左端の文字の開始位置 の評価結果は、データ名-1 によって参照される データ項目の桁数以下の、ゼロ以外の正の整数でなければなりません。

左端の文字の開始位置 の評価結果が、ウィンドウ化日付フィールドであってはなりません。

長さ
算術式でなければなりません。

長さ の評価結果は、ゼロ以外の正の整数でなければなりません。

長さ の評価結果が、ウィンドウ化日付フィールドであってはなりません。

左端の文字の開始位置長さ の合計から 1 を引いた値は、データ名-1 の桁数以下でなければなりません。長さ を省略した場合、使用する長さは、データ名-1 の文字位置に 1 を足した値から左端の文字の開始位置 を引いた値に等しくなります。

使用法が DISPLAY-1 および NATIONAL の場合、それぞれの文字位置は各文字の 2 バイトを占有します。参照変更は文字位置全体に対して機能するのであり、使用法 DISPLAY-1 および NATIONAL の文字の個々のバイトに対して機能するのではありません。使用法 DISPLAY の場合、参照変更はそれぞれの文字が 1 バイト文字であるものとして機能します。

特に断りがない限り、参照変更は、参照変更データ項目と同じ使用法のデータ項目または関 数を参照する ID または関数 ID が使用できる個所であればどこでも使用できます。

データ名-1 または 関数名-1 によって参照されるそれぞれの文字位置には、 左端の位置から右端の位置にかけて 1 ずつ大きくなる序数が割り当てられます。左端の位置には序数として 1 が割り当てられます。 データ名-1 のデータ記述項目に SIGN IS SEPARATE 文節がある場合は、 符号の位置にもそのデータ項目における序数が割り当てられます。

データ名-1 が使用法 DISPLAY で記述され、数字、数字編集、英字、英数字編集、または外部浮動小数点のカテゴリーに属する場合、そのデータ名-1 は、データ名-1 で参照されるデータ項目と同じサイズの英数字カテゴリーのデータ項目として再定義されたものとして、参照変更の対象となります。

データ名-1 が使用法 NATIONAL で記述され、数字、数字編集、国別編集、または外部浮動小数点のカテゴリーに属する場合、データ名-1 は、データ名-1 で参照されるデータ項目と同じサイズの国別カテゴリーのデータ項目として再定義されたものとして、参照変更の対象となります。

データ名-1 が国別グループ項目である場合、データ名-1 は国別カテゴリーの基本データ項目として処理されます。

データ名-1 が拡張日付フィールドである場合、参照変更の結果は非日付データとなります。

参照変更は、データ名-1 のサブセットまたは関数名-1 とその引数 (引数がある場合) によって参照されるデータ項目のサブセットである固有のデータ項目を作成します。この固有のデータ項目は、JUSTIFIED 文節を伴わない基本データ項目とみなされます。

関数が参照変更の場合、この固有のデータ項目は、クラスおよびカテゴリーを持ち、関数の タイプが国別の場合は、使用法 NATIONAL を持ちます。国別の関数でない場合は、英数字 のクラスおよびカテゴリーに属し、使用法 DISPLAY を持ちます。

データ名-1 が参照変更される場合、以下の場合を除き、この固有のデータ項目は、データ名-1 で参照されるデータ項目に定義されたものと同じクラス、カテゴリー、および使用法を持ちます。

長さ の指定がない場合、得られる固有のデータ項目の位置は、左端の文字位置 によって指定される文字位置 (その文字位置を含む) から、データ名-1 によって参照されたデータ項目の右端の文字位置 (その文字位置を含む) までになります。

オペランドの評価

オペランドに対する参照変更は、次のように評価されます。

参照変更の例

次の例では、 WHOLE-NAME によって参照されたデータ項目の最初の 10 文字を、 FIRST-NAME によって参照されたデータ項目に転送します。

77  WHOLE-NAME  PIC X(25).
77  FIRST-NAME  PIC X(10).
...
    MOVE WHOLE-NAME(1:10) TO FIRST-NAME.

次の例では、 WHOLE-NAME によって参照されたデータ項目の最後の 15 文字を、 LAST-NAME によって参照されたデータ項目に転送します。

77  WHOLE-NAME  PIC X(25).
77  LAST-NAME   PIC X(15).
...
    MOVE WHOLE-NAME(11:) TO LAST-NAME.

次の例では、 TAB の 3 番目のオカレンスの 4 番目と 5 番目の文字を、 SUFFIX という変数に転送します。

01  TABLE-1.
    02  TAB  OCCURS 10 TIMES  PICTURE X(5).
77  SUFFIX                    PICTURE X(2).
...
    MOVE TAB OF TABLE-1 (3) (4:2) TO SUFFIX.

ご利用条件 | フィードバック

Copyright IBM Corporation 1996, 2008.
このインフォメーション・センターでは Eclipse テクノロジーが採用されています。(http://www.eclipse.org)