概要
- CLプログラムを実行した場合、WindowsのDOS窓のように変数の値や計算の結果などを「コマンドラインへ表示して確認したい!」となるケースがあります。その場合、SNDPGMMSGコマンドを使って実現します。メッセージタイプ(MSGTYPE)は、出力結果のため「完了」にしておきます。
SNDPGMMSG MSG('文字列') MSGTYPE(*COMP)
サンプルソース
TIGER/CLLESRC SAMP05C
PGM /* 変数定義 */ DCL VAR(&X) TYPE(*DEC) LEN(3 0) VALUE(1) DCL VAR(&Y) TYPE(*DEC) LEN(3 0) VALUE(1) DCL VAR(&Z) TYPE(*DEC) LEN(3 0) VALUE(1) DCL VAR(&X2) TYPE(*CHAR) LEN(3) DCL VAR(&Y2) TYPE(*CHAR) LEN(3) DCL VAR(&Z2) TYPE(*CHAR) LEN(3) /* 開始メッセージ */ SNDPGMMSG MSG(' 1の段を計算します ') MSGTYPE(*COMP) DOUNTIL COND(&Y = 10) CHGVAR VAR(&Z) VALUE(&X*&Y) /* 文字←数値変換 */ CHGVAR VAR(&X2) VALUE(&X) CHGVAR VAR(&Y2) VALUE(&Y) CHGVAR VAR(&Z2) VALUE(&Z) SNDPGMMSG MSG(&X2 *CAT '*' *CAT &Y2 + *CAT '=' *CAT &Z2) MSGTYPE(*COMP) CHGVAR VAR(&Y) VALUE(&Y+1) ENDDO /* 終了メッセージ */ SNDPGMMSG MSG(' 1の段の計算終了! ') MSGTYPE(*COMP) ENDPGM
実行結果
> CALL SAMP05C 1の段を計算します 001*001=001 001*002=002 001*003=003 001*004=004 001*005=005 001*006=006 001*007=007 001*008=008 001*009=009 1の段の計算終了!
補足
RPGLEの場合であれば、DSPLY命令にて実現できます。
C 'HELLO ! ' DSPLY C 'WORLD ! ' DSPLY /FREE DSPLY ('今年は' + %CHAR(W1YEAR) + '年です。'); /END-FREE