COBOL2002 言語 拡張仕様編


22.6.7 MOVE文(動的長基本項目機能)

構文規則

  1. 一意名2に,連絡節で定義したLIMIT指定のない動的長基本項目を指定してはならない。

一般規則

  1. 動的長基本項目を送り出し側作用対象に指定した場合,その時点の長さを持つ固定長項目と同等に扱う。転記するデータに終端文字は含まない。

  2. 動的長基本項目を受け取り側作用対象に指定した場合,次の動作となる。

    (a) n以下の長さの文字列を転記した場合,文字列の転記後,末尾からn+1まで終端文字を付加する。

    (b) nを超える長さの文字列を転記した場合,nの長さ分の文字列を転記後,n+1の位置に終端文字を付加する。

    ここでnは,受け取り側作用対象に指定した動的長基本項目の最大長とする。

    (例)

    [図データ]

    注意事項

    LOW-VALUE(X'00')が含まれた固定長基本項目または表意定数LOW-VALUEを動的長基本項目に転記した場合,動的長基本項目の長さは転記されたLOW-VALUEの前までとなる。

    01  DYNADATA  PIC  X  DYNAMIC LENGTH  C-STRING  LIMIT 5.
    01  FIXDATA   PIC  X(4)  VALUE  X'61620064'.
     
    MOVE  FIXDATA TO DYNADATA.    *> DYNADATAの長さは2となる
    MOVE  LOW-VALUE TO DYNADATA.  *> DYNADATAの長さは0となる
  3. 動的長基本項目を送り出し側作用対象または受け取り側作用対象に指定した場合,受け取り側作用対象に複数の項目を指定してはならない。

【標準仕様との関連】

COBOL2002 言語 標準仕様編」 「10.8.28 MOVE文