Eh oui, tu t'es trompé dans ta boucle dowhile et c'est gros !
setll (house : itnbr) REQMTS;
reade (house : itnbr) REQMTS;
DoW Not %Eof(REQMTS) and rqerc <> 72;
Besoin += RQQTY;
reade (house : itnbr) REQMTS;
EndDo;
Soit tu ne fais qu'un seul read (ou reade) avec une boucle
dountil, avec le read immédiatement sous le
dountil, suivi de suite du test de l'EOF pour quitter la boucle,
soit tu fais deux read (ou reade) avec une boucle
dowhile avec un read avant le
dowhile et un autre identique juste avant le enddo, mais pas un mélange des deux....
Comme dans ta programmation l'EOF n'est jamais atteint dans ta boucle sans fin, il arrive évidemment un "moment" où le compteur
Besoin dépasse sa capacité et ... tu plantes avec un joli message explicatif.