> Tech > Trier et classer

Trier et classer

Tech - Par Renaud ROSSET - Publié le 24 juin 2010
email

La figure 5 est un fragment de code Cobol qui montre comment déterminer le champ à  trier. Il y a un paragraphe équivalent pour le classement. Le champ CSRFLD est renvoyé du fichier d'affichage au programme avec le nom du champ sur lequel se trouve le curseur. Cette

Trier et classer

routine établit un
champ Level-88 pour indiquer quel
champ doit être trié puis elle passe la
main à  la routine chargée du tri.
La figure 6 est un fragment de code
Cobol qui montre les routines d’I/O
pour la file d’attente de données indexées.
Les numéros d’instruction 516
et 531 sont les enregistrements de sortie
et d’entrée du sous-fichier. Tous les
autres champs sont préchargés dans
Working-Storage.
La figure 7 est un fragment de code
Cobol qui montre comment trier le
sous-fichier. L’instruction 747 efface la
file d’attente de données. La boucle
perform de l’instruction 752 à  l’instruction
792 sélectionne le champ à  déplacer dans le champ clé de la file
d’attente de données, prépare des
champs numériques si nécessaire, écrit
un enregistrement dans la file d’attente
de données puis obtient l’enregistrement
de sous-fichier suivant jusqu’à  ce
que tous les enregistrements du sousfichier
aient été lus. A noter que les
champs OUTLET et NAME, dans les
instructions 755 à  758, sont transférés
directement dans le champ data queue
key tandis que les champs numériques
doivent être traités différemment.
établissent
la clé pour les champs numériques.
Si le nombre est négatif, le flag
négatif est activé et tous les 9 sont ajoutés
au nombre puis déplacés dans le
champ clé. Si le nombre est positif, le
flag positif est activé et le nombre est
déplacé dans le champ clé. Les instructions
798 à  800 effacent le sous-fichier.
La boucle perform, qui va des instructions
808 à  812, lit la file d’attente
de données et écrit l’enregistrement
dans le sous-fichier. A noter que le
champ DTAQ-LENGTH-OF-DATA est
utilisé comme indicateur de fin de fichier
(ou file d’attente de données
vide). Une valeur zéro indique que la
file d’attente de données a été entièrement
lue.
La figure 8 est un fragment de code
Cobol qui montre comment classer le
sous-fichier. Le processus de classement
fonctionne de la même manière
que le processus de tri, à  une exception
près : les nombres négatifs et positifs
sont traités de façon inverse au processus
de tri. Si le nombre est positif, le
flag négatif est activé et le nombre est
soustrait de tous les 9 puis le nombre
est déplacé dans le champ clé. Si le
nombre est négatif, le flag positif est activé
et le nombre est déplacé dans la
clé de la file d’attente de données. A
noter aussi que les champs OUTLET et
NAME ne sont pas pris en compte dans
le classement. En la circonstance, il ne
semblait pas pertinent de classer un
nom ou un numéro de point de vente.
Cependant, si j’avais utilisé ‘tri décroissant’ pour le texte de la touche de
fonction F8 dans mon programme, il
eût été pertinent de trier les champs
OUTLET et NAME en ordre décroissant.

Téléchargez cette ressource

Guide inmac wstore pour l’équipement IT de l’entreprise

Guide inmac wstore pour l’équipement IT de l’entreprise

Découvrez toutes nos actualités à travers des interviews, avis, conseils d'experts, témoignages clients, ainsi que les dernières tendances et solutions IT autour de nos 4 univers produits : Poste de travail, Affichage et Collaboration, Impression et Infrastructure.

Tech - Par Renaud ROSSET - Publié le 24 juin 2010