Connaitre la taille des données dans une variable RPG est assez simple en soit.
Récupérer cette information dans un programme CLP peut s’avérer compliqué.
Contre toute attente, la commande RTVMSG permet de récupérer la taille des données dans une variable.
Voici un exemple de code permettant de déterminer la taille du texte « christophe » dans la variable &TEST
DCL &TEST TYPE(*CHAR) LEN(20) VALUE(‘christophe’)
DCL &LEN TYPE(*DEC) LEN(5 0)
RTVMSG MSGID(CPF9897) MSGF(QCPFMSG) MSGDTA(&TEST) MSGLEN(&LEN)
La variable &LEN sera égale à 10
Une autre méthode consiste à modifier la valeur de la variable &LEN comme suit :
CHGVAR VAR(&Len) VALUE(%BIN(&TEST 1 2))