Page 1 sur 1

En Free comment tester la numéricité d'une variable alpha. ?

Posté : mer. 12 mars 2014, 12:03:47
par germor
Bonjour,
Sous V7R1,
En RPG FREE, je cherche à faire un test de numéricité.

si les 6 premiers caractères de la variable P_Champ
sont numériques,
alors je met ces 6 car. dans la variable P_MatD,
sinon je met 6 zéros dans la variable P_MatD.

J'ai opté pour l'utilisation de Monitor...on-error...endmon.
le code :

Code : Tout sélectionner

 
     DP_Champ        S             40
     DP_MatD           S               6
     DP_Mat9            S               6  0       
...
          P_Mat9 = 0;
          P_MatB = '';
       Monitor;
         P_Mat9 = %dec(%Subst(P_Champ:1:6):6:0);
         P_MatB = %Subst(P_Champ:1:6);
       On-Error;
         P_MatB = '000000';
       ENDMON;      
Est-ce la bonne solution ?


Est il possible de ne pas écrire dans le QPJOBLOG autant de messages qu'il y a de tests de numéricité ?
le message généré :
Instruction . . . . . . . . : 3714
Message . . . . : Représentation alphanumérique d'une valeur numérique en
erreur.
Cause . . . . . : Une opération de conversion de données alphanumériques en
données numériques a détecté des données incorrectes. Que faire . . . :
Corrigez les données numériques.
Merci de vos réponses.

teste numérique ?

Posté : mer. 12 mars 2014, 12:29:06
par cmasse
Si vous ne voulez pas de messages dans la JOBLOG, essayez :

Code : Tout sélectionner

if %CHECK('0123456789' : %Subst(P_Champ:1:6) ) = 0;
  P_Mat9 = %dec(%Subst(P_Champ:1:6):6:0); 
endif;

(sans texte)

Posté : mer. 12 mars 2014, 12:54:06
par germor
merci.