%LEN は OS Ver6.1から使えるようになった文字列の中の実際に
含まれている文字の数を調べる関数である。
それまでは
24. 文字列の中の有効な文字数を調べるには?
で紹介した古典的な CHECKR を使って
' ' CHEKRSTRING LEN
のようにして調べるしか方法がなかったが %LEN は
一発で有効文字数を調べてくれる。
ソースはこちらから
0001.00 H DFTNAME(TESTLEN) DATEDIT(*YMD/) BNDDIR('QC2LE') 0002.00 F********** %LEN の使用方法 ******************************************* 0003.00 F* 0004.00 F********************************************************************** 0005.00 0006.00 *( 作業変数 ) 0007.00 D AR S 1A DIM(256) 0008.00 D LEN S 4S 0 0009.00 D MSG S 80 0010.00 D DSP40 S 40 0011.00 0012.00 C MOVEL(P) ' 電卓 ' MSG 0013.00 /FREE 0014.00 LEN = %LEN(%TRIMR(MSG)); 0015.00 DSP40 = ' 電卓の長さは ' + %CHAR(LEN) +' 桁です '; 0016.00 /END-FREE 0017.00 C DSP40 DSPLY ANS 1 0018.00 C SETON LR 0019.00 C RETURN
[解説]
LEN = %LEN(%TRIMR(MSG)) は MSGの中に入れた「電卓」という文字の長さを
戻す。
実行してみると
プログラム・メッセージの表示 DSPLY 電卓の長さは 6 桁です 応答を入力して,実行キーを押してください。 応答 . . . F3= 終了 F12= 取消し
となる。