22.9.3 COBOLのプログラム内で使用する例
IDENTIFICATION DIVISION.
PROGRAM-ID. TESTPROG.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SPECIAL-NAMES.
DYNAMIC LENGTH STRUCTURE C-STRING IS C-STATIC-STRUCTURE.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 FIXDATA PIC X(20).
01 DYNADATA PIC X DYNAMIC LENGTH C-STRING LIMIT 20.
01 DYNADATA-N PIC N DYNAMIC LENGTH C-STRING LIMIT 5.
PROCEDURE DIVISION .
MOVE 'error 01' TO DYNADATA. *> 空白詰めは行わない
DISPLAY DYNADATA. *> 長さ8のメッセージを表示する。
MOVE 'err 02' TO DYNADATA.
DISPLAY DYNADATA. *> 長さ6のメッセージを表示する。DYNADATAのサイズが変わる
INITIALIZE DYNADATA. *> INITIALIZE文を実行すると動的長基本項目の長さは0になる
MOVE 'error 0003' TO DYNADATA.
DISPLAY DYNADATA. *> 長さ10のメッセージを表示する
MOVE DYNADATA TO FIXDATA. *> 動的長基本項目が送り出し側となる例
*> DYNADATAは長さ10であるため,長さ10の固定項目を転記する場合と同等
MOVE 'error 0003' TO FIXDATA .
DISPLAY FIXDATA. *> 長さ10+空白10のメッセージを表示する
IF DYNADATA = FIXDATA THEN *> DYNADATAは'error 0003'を格納した長さ10の固定項目と
DISPLAY 'MATCH' *> 同等のため,'MATCH'となる
END-IF.
MOVE FIXDATA TO DYNADATA. *> 埋字の空白も転記され,DYNADATAは長さ20となる
MOVE FUNCTION TRIM(FIXDATA) TO DYNADATA. *> 空白を取る場合はTRIM関数を併用する
MOVE '12345678901234567890ABC' TO DYNADATA. *> LIMIT 20のため送り出し側の
*> 先頭20バイトしか格納されない
MOVE N'あいう' TO DYNADATA-N. *> 空白詰めは行わない
MOVE N'あいうえおかきく' TO DYNADATA-N. *> N'あいうえお' が格納される
INITIALIZE DYNADATA-N. *> 初期化され,長さは0になる
ページの先頭へ