Nouveautés CL en V7R10 (avec PTF SI48166/SI49061)

BoTTom |    Changer de couleur
 
 Nouveautés de la version 7.1 en CL
 
   La commande RTVCLSRC est admise sur les sources de type CLLE
    si vous avez utilisé ALWRTVSRC(*yes) sur CRTCLMOD / CRTBNDCL
 
 
   Sur les commandes de compilation (CLP ou CLLE) vous pouvez préciser
    OPTION(*DOSLTLVL) demandant l'apparition du niveau d'imbrication
    sur les listes de compilation  (DOWHILE, DOUNTIL, DOFOR, SELECT)
 
 
   Les zones de type *INT (integer) *UINT (integer non signé) admettent
     une longueur sur 8 octets (comme le RPG et le BIGINT de SQL)
 
 
   La commande INCLUDE (nouvelle en V6) ne pouvait pas inclure un source
    contenant lui-même la commande INCLUDE
 
    C'est chose faite, l'imbrication de ces commandes est désormais
     possible, sans limitation du nombre de niveau.
 


|    Changer de couleur
 
 Après les fonctions intégrées suivantes :
 
   %SST            extraction d'une chaîne de caractères
   %BIN            extraction et conversion d'une sous-chaîne en binaire
   %SWITCH         manipulation des switchs du job (concept d'origine 36)
   %OFFSET         manipulation d'un pointeur (incrémentation/déplacement)
   %ADDRESS        assignation d'un pointeur avec l'adresse d'une variable
 
 
 La PTF SI48166   propose
 
   %TRIM           élimination d'un blanc d'extrémité d'une chaîne
   %TRIMR          élimination des blancs de droite
   %TRIML          élimination des blancs de gauche
 
La PTF SI49061   propose
 
  %CHECK          vérification des caractères d'une variable(gauche->droite)
  %CHECKR         vérification des caractères d'une variable(droite->gauche)
  %SCAN           recherche d'une chaîne dans une variable
 


|    Changer de couleur
 
 Exemples :
 
  DCL        VAR(&V1) TYPE(*CHAR)  +
              VALUE('   test de chaine*****')
  DCL        VAR(&V2) TYPE(*CHAR)
  DCL        VAR(&V3) TYPE(*CHAR)
 
   CHGVAR     VAR(&V2) VALUE(%TRIM(&V1))
              /* contient 'test de chaîne*****' */
 
              /* on peut indiquer le(s) caractère(s) à enlever */
   CHGVAR     VAR(&V3) VALUE(%TRIMR(&V2 '* '))
              /* contient 'test de chaîne' */
 
  DCL        VAR(&V4) TYPE(*CHAR) VALUE('666,66')
  DCL        VAR(&V5) TYPE(*INT)
 
   CHGVAR     VAR(&V5) VALUE(%CHECK('123456789' &V4))
              /* contient 4, la position de ',' */
   CHGVAR     VAR(&V5) VALUE(%CHECK('123456789, ' &V4))
              /* contient 0, tout est OK  */


|    Changer de couleur
 
   /* on peut utiliser *LDA à la place d'un nom de variable */
 
   CHGDTAARA  DTAARA(*LDA (1 10)) VALUE('03216549*7')
   CHGVAR     VAR(&V5) VALUE(%CHECK('123456789' *LDA))
              /* contient 1, la position du '0' */
 
   /* on peut préciser la position de début de recherche */
   CHGVAR     VAR(&V5) VALUE(&V5 + 1)  /* à partir de  2 */
   CHGVAR     VAR(&V5) VALUE(%CHECK('123456789' *LDA &V5))
              /* contient 9, la position de '*' */
 
  /* on peut faire le contrôle de droite à gauche */
   CHGVAR     VAR(&V5) VALUE(%CHECKR('123456789' *LDA))
             /* contient 9, la position de '*' */
 
  /* %scan, mêmes fonctionnalités */
  DCL        VAR(&V4) TYPE(*CHAR) VALUE('666,66')
   CHGVAR     VAR(&V5) VALUE(%SCAN(',' &V4))
             /* contient 4 */
   CHGVAR     VAR(&V5) VALUE(%SCAN('*' *LDA))
             /* contient 0, non trouvé */





©AF400