divers tests sur la syntaxe RPG V7

BoTTom |
     H DFTACTGRP(*NO)
     D clients         DS                  QUALIFIED DIM(50) INZ
     D   nocli                        6  0
     D   nom                         20
     D   depart                       2  0
     Dchaine1          s             35
     Dchaine2          s            255    varying
     Di                s              5I 0
     D getFileData     pr              a   varying len(1000000)
     D                                     rtnparm
     D   file                          a   const varying len(500)
     D data            S               a   varying len(1000)
      /free
        clients(1).nocli = 1;
        clients(1).nom = 'Gérard';
        clients(1).depart = 85;
        clients(2).nocli = 2;
        clients(2).nom = 'Michel';
        clients(2).depart = 44;
        clients(3).nocli = 3;
        clients(3).nom = 'Sophie';
        clients(3).depart = 49;
 
         // ATTENTION ca plante sans INZ
         // ne tri que les 3 premiers postes
        sorta %subarr(clients(*).depart:1:3);
        // tri tous les postes tous ceux à 0 sont en premier
        sorta clients(*).depart;
        // tri tous les postes en ordre décroissant
        sorta(D) clients(*).depart;
        // tri les 3 premiers sur le nom, ca marche !
        sorta %subarr(clients(*).nom :1:3);
 
         // remplace RPG par ILE
         chaine1 = 'recherche de la chaîne "RPG" en RPG';
         chaine1 = %scanRPL('RPG' : 'ILE' : chaine1);
 
         chaine2 = 'Bonjour';
         i = %len(chaine2);      //7
         i = %size(chaine2);     //257
         i = %len(chaine2:*MAX); //255
 
         data = getFileData ('/home/mydir/myfile.txt');
        *inlr=*on;


|
       /end-free
 
     P getFileData     B
     D getFileData     pi              a   varying len(1000000)
     D                                     rtnparm
     D   file                          a   const varying len(500)
     D retour          s               a   varying len(1000000)
      /free
       retour = file;
       for i  =1 to 500;
         retour = retour + file;
       ENDFOR;
       return retour;
      /end-free
     P getFileData     E
 
     P getdate         B                   EXPORT
     D                 pi              D
      /free
       return %date ;
      /end-free
     P getdate         E




©AF400