星期一, 11月 06, 2023

2005-03-08 如何於 CLP 中擷取字串的長度?(Command RTVSTRLEN)


如何於 CLP 中擷取字串的長度?(Command RTVSTRLEN)

要在 CLP 中取得字串長度,類似 RPGLE 中利用函數 %LEN(%TRIMR(str)) 取得字串長度,
可以使用指令模式取得最方便,以下便是 RTVSTRLEN 指令:


File  : QCLSRC
Member: RTVSTRLENC
Type  : CLP
Usage : CRTCLPGM PGM(RTVSTRLENC) SRCFILE(lib/QCLSRC) SRCMBR(RTVSTRLENC)

The CPP source:
 RTVSTRLEN:  PGM        PARM(&STRING &STRLEN)                   
             DCL        VAR(&STRING) TYPE(*CHAR) LEN(5002)      
             DCL        VAR(&STRLENA) TYPE(*CHAR) LEN(2)        
             DCL        VAR(&STRLEN) TYPE(*DEC) LEN(4 0)        
                                                                
             CHGVAR     VAR(&STRLENA) VALUE(%SST(&STRING 1 2))  
             CHGVAR     VAR(&STRLEN) VALUE(%BIN(&STRLENA))      
                                                                
             ENDPGM 


File  : QCMDSRC
Member: RTVSTRLEN
Type  : CMD
Usage : CRTCMD CMD(RTVSTRLEN) PGM(lib/RTVSTRLENC) SRCFILE(lib/QCMDSRC) SRCMBR(RTVSTRLEN) ALLOW(*IPGM *BPGM)

 RTVSTRLEN:  CMD        PROMPT('Retrieve String Length')                
             PARM       KWD(STRING) TYPE(*CHAR) LEN(5000) VARY(*YES +   
                          *INT2) PROMPT('Character string        +      
                          (5000)')                                      
             PARM       KWD(STRLEN) TYPE(*DEC) LEN(4 0) RTNVAL(*YES) +  
                          PROMPT('CL var for return value  (4,0)')       
            




沒有留言: