> Tech > Donner du sens aux matrices d’éxécution en RPG

Donner du sens aux matrices d’éxécution en RPG

Tech - Par Julian Monypenny - Publié le 24 juin 2010
email

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 gratuitement cette ressource

Microsoft 365 : Guide de Sauvegarde & Sécurité renforcée

Microsoft 365 : Guide de Sauvegarde & Sécurité renforcée

Découvrez dans ce Guide iTPro, les bonnes pratiques et solutions technologiques pour sauvegarder et sécuriser les données et les identités Microsoft Office 365. Ce nouveau guide pratique et opérationnel a été réalisé par les experts DIB France.

Tech - Par Julian Monypenny - Publié le 24 juin 2010