
Salutations.
Difficile de juger sans les datas complets. Mais quelques réflexions.
- - Définition du type des variables : Tu as utilisé une possibilité du QB en adoptant des initiales (DEFSNG G, M, P). Je n’aime pas du tout cette possibilité (cela n’engage que moi, et la méthode t’était peut-être imposée). Je ne l’utilise jamais et préfère de beaucoup les suffixes (%, !, #, &) pour les zones numériques. Les alphas n’en auront pas avec (DEFSTR A-Z). De cette façon, quelle que soit la longueur du programme (et certains peuvent atteindre plusieurs milliers de ligne), tu sauras toujours de quoi il s’agit. En définitive, les ‘initiales’ ne procurent qu’un gain de temps minime et les sources d’erreurs seront fort nombreuses.
- - Sortie des boucles. Elle peut s’effectuer de plusieurs façons :
Avec WHILE (tant que …) ou UNTIL (jusqu’à ce que …) écrit après le DO ou le LOOP.
Il y a une autre possibilité : IF « condition » THEN EXIT LOOP. Et tu peux la placer n’importe où à l’intérieur de la boucle, à un endroit approprié.
Si tu pouvais nous communiquer le code complet (avec les datas, c’est important), de préférence sur le Wall, cela pourrait fort bien faire avancer les choses.
Pourquoi les datas ? Parce que je pense que ta façon de faire est gênante à la fin d’un ‘client’, ou d'un groupe d'écritures :
Tu lis Date, Nature, Libellé et Montant. Si il y a une suite, Date contient un « x », alors comment trouver D, N, L & M. C’est également valable pour le dernier : Date contient un « Z » et les read de N, L & M se plantent, données épuisées …..Je pense faire une erreur, car, sans les datas, il est difficile de se faire une idée précise.

Salutations.
PS : Si tu ne sais pas mettre ton prog sur le Wall, fais-le savoir et nous te guiderons.
Moi, mon ordinateur, je l'ai baptisé "Billy" ...
En remerciement, je reçois beaucoup de pages bleues !