PGM /*-------------------------------------------------------------------*/ /* TESTLEN : CLP 文字変数の長さの取得 */ /* */ /* 2020/05/06 作成 */ /*-------------------------------------------------------------------*/ DCL VAR(&STRING) TYPE(*CHAR) LEN(132) DCL VAR(&LEN) TYPE(*DEC) LEN(4 0) DCL VAR(&LENC) TYPE(*CHAR) LEN(4) CHGVAR VAR(&STRING) VALUE('SET YOUR PGM') CALLSUBR SUBR(GET_LENGTH) CHGVAR VAR(&LENC) VALUE(&LEN) /*( 先行ゼロの消去 )*/ NXTLEN: IF COND(%SST(&LENC 1 1) = '0') THEN(DO) CHGVAR VAR(&LENC) VALUE(%SST(&LENC 2 3)) GOTO NXTLEN ENDDO SNDPGMMSG MSG(' 文字列 ' *CAT &STRING *TCAT + ' の長さは ' *CAT &LENC *TCAT + ' です。 ') MSGTYPE(*DIAG) RETURN /***********************************/ SUBR SUBR(GET_LENGTH) /* CMPMSG の長さを調べる */ /***********************************/ CHGVAR VAR(&LEN) VALUE(132) CHGVAR VAR(&LEN) VALUE(17) CHECK: IF COND(%SST(&STRING &LEN 1) *EQ ' ') THEN(DO) CHGVAR VAR(&LEN) VALUE(&LEN - 1) GOTO CHECK ENDDO ENDSUBR ENDPGM