Au cours de ces dernières années, le traitement des matrices RPG a beaucoup changé. Les nouveautés affectent surtout la manière de les définir et de les traiter. Il existe beaucoup de variantes de l’ancienne matrice d’exécution. Outre les simples matrices de champs, on peut définir des matrices de structures de données, des matrices qualifiées, des matrices superposées, des matrices multidimensionnelles, des matrices allouées dynamiquement, et des structures de données à occurrences multiples. Chaque genre de matrice a ses forces et ses faiblesses : quelque-unes peuvent être grandes, d’autres ne peuvent être que petites. Certaines ont besoin d’une initialisation explicite, d’autres pas. Telles peuvent être triées, telles autres ne le peuvent pas.Cet article donne du sens aux matrices d’exécution. J’explique comment définir et initialiser chaque type de matrice, accéder aux éléments, trier des matrices et consulter les éléments. Pour approfondir certaines techniques de coding spécifiques, voir l’encadré « 7 conseils principaux sur les matrices »). Mais, commençons par revoir quelques principes de base sur les matrices.
Donner du sens aux matrices d’éxécution en RPG
Une matrice est un ensemble d’éléments.
Ces derniers partagent une définition de données commune, mais chaque élément a une valeur discrète. Une matrice peut contenir jusqu’à 32 767 éléments, chacun d’une longueur maximale de 65 535 octets. Les matrices sont codées dans les D-specs comme des champs autonomes ou comme des sous-champs de structures de données. Le mot-clé DIM définit le nombre d’éléments présents dans une matrice. Les matrices autonomes sont limitées par l’allocation de stockage d’un programme de 16 776 704 octets. Les matrices de sous-champs sont limitées par l’allocation de stockage d’une structure de données : 9 999 999 octets pour une structure de données non nommée ou 65 535 octets pour une structure de données nommée.
Vous traitez les matrices dans les specs en format libre de vos programmes. Pour accéder à un élément de matrice, utilisez un entier comme index. Pour accéder à tous les éléments dans la matrice, spécifiez un astérisque comme index. Vous pouvez utiliser les fonctions intégrées et les codes opérations suivants avec les matrices :
• %ELEM renvoie le nombre d’éléments présents dans une matrice.
• %LEN renvoie la longueur d’un élément de matrice.
• %SIZE renvoie la taille d’un élément de matrice.
• %LOOKUP, %LOOKUPLT, %LOOKUPLE, %LOOKUPPGT et %LOOKUPGE recherchent un élément correspondant dans une matrice.
• %SUBARY extrait un sous-ensemble d’une matrice (disponible avec V5R3).
• %XFOOT additionne une matrice numérique.
• SORTA trie une matrice.
Plus loin, nous verrons des exemples des différents types de matrices en utilisant les définitions suivantes :
d idx s 101 0
d item ds qualified
d id 101 0
d desc 30
IDX définit un index de matrice comme un entier à 10 chiffres. La structure de données ITEM définit un ID et une description d’item sur lesquels s’appuieront les définitions de matrices.
Téléchargez cette ressource
Guide inmac wstore pour l’équipement IT de l’entreprise
Découvrez les dernières tendances et solutions IT autour des univers de Poste de travail, Affichage et Collaboration, Impression et Infrastructure, et notre dossier Green IT sur les actions engagés par inmac wstore pour réduire son impact environnemental
Les articles les plus consultés
- Cybersécurité Active Directory et les attaques de nouvelle génération
- Activer la mise en veille prolongée dans Windows 10
- Partager vos images, vidéos, musique et imprimante avec le Groupe résidentiel
- N° 2 : Il faut supporter des langues multiples dans SharePoint Portal Server
- Chiffrements symétrique vs asymétrique