COBOL2002 言語 拡張仕様編


22.3.1 表意定数

一般規則

  1. 次の規則は動的長基本項目には該当しない。

    表意定数がVALUE句に指定されている場合,またはデータ項目や定数や中間結果項目に関連づけられている場合,文字列は1文字ずつ右側へと反復されて,でき上がった文字列の長さは,関連するデータ項目か定数の中間結果項目の中の文字位置の個数以上になる。

  2. 動的長基本項目に表意定数を関連付ける場合,次の規則が適用される。

    • 表意定数が「ALL 定数」以外の場合,文字列の長さは1文字とする。

    • 表意定数が「ALL 定数」の場合,文字列の長さは定数の長さとする。

    (例)

        01 MY-DYNAMIC PIC X DYNAMIC LENGTH C-STRING
              LIMIT 20.
                 :
        MOVE  'abc'  TO  MY-DYNAMIC.
          *> 動的長基本項目MY-DINAMICに'abc'が転記され,MY-DYNAMICは長さが3となる。
     
        MOVE  SPACE  TO  MY-DYNAMIC.
          *> SPACEは3文字でなく空白1文字が転記され,MY-DYNAMICは長さが1となる。
     
        MOVE  ALL 'abc'  TO  MY-DYNAMIC.
          *> 'abc'が転記され,MY-DYNAMICは長さが3となる。
     
        MOVE  ALL SPACE  TO  MY-DYNAMIC.
          *> SPACEは1文字のため,空白1文字が転記され,MY-DYNAMICは長さが1となる。
【標準仕様との関連】

COBOL2002 言語 標準仕様編」 「(d) 表意定数の値