fleche
Appareillage

Manipulation de fichiers séquentiels triés

Lors de traitements batch il est très fréquent d’exploiter
des fichiers séquentiels. En effet, à partir d’un certain
pourcentage d’exploitation (>10%) d’un fichier, les
performances sont meilleures si on le traite
séquentiellement plutôt qu’en accès direct.
Il est nécessaire de rapprocher les n fichiers sur des
données communes. Il existe deux méthodes classiques
distinctes :
l’appareillage de fichiers et les fichiers
« maître/esclave ».

 

But: il s’agit de rapprocher deux fichiers sur une donnée
commune. Les deux fichiers doivent être triés sur cette donnée.
Les deux fichiers ont la même priorité, aucun des deux ne « pilote » le
traitement.
Principes:
on effectue une lecture sur chacun des fichiers en entrée
(lectures d’avance).
On compare les deux clés :
Si clé fichier 1 < clé fichier 2: on fait traitement-1 et on lit le fichier 1
Si clé fichier 2 < clé fichier 1: on fait traitement-2 et on lit le fichier 2
Si les clés sont égales : on fait traitement-3 et on lit les deux fichiers

 

On boucle jusqu’à épuisement des deux fichiers.
1) Dès qu’un fichier est fini on sort de la boucle de traitement et on
traite le reste de l’autre fichier.
2) Dès qu’un fichier est fini on force sa clé à la valeur maxi
(99..99).
De ce fait la clé de l’autre fichier est toujours la plus petite et donc
on ne traitera plus que ce fichier. On sort de la boucle lorsque les
deux clés sont à la valeur maxi.
ATTENTION: cette solution n’est envisageable que si 99…99 est
une valeur que la clé ne prend jamais dans les fichiers d’origine.
Autrement utiliser des booléens « finfichier », le traitement s’arrête
quand les deux booléens sont vrais.