Re: probleme avec tantque "blocage total "

Posté par drcharly93 le 2/10/2006 11:09:23
Bonjour,
Citation :

Saisie1=0
Saisie2=0
Saisie3=0
//Initilisation du parcours OK
HLitPremier(Credit,Numclient)
//On parcours tant pas en dehors OK
TANTQUE PAS HEnDehors(Credit)
SI Credit.Numclient=table.numclient ALORS
Saisie1=Saisie1+Credit.Creditt
Saisie2=Saisie2+Credit.vers
SINON
//??????? On passe au suivant que si on est en dehors
HLitSuivant(Credit,Numclient)
FIN
Saisie3=Saisie1-Saisie2


Votre code tourne en boucle sur le premier enregistrement sans jammais passer au suivant ce qui provoque un débordement de pile

Vous devriez plutot ecrire votre code de la facon suivante
Optimisé
//Parcours tout les enregistrements sans nécessité du HLitSuivant()
POUR TOUS Credit
  SI Credit.Numclient=table.numclient ALORS
    Saisie1+=Credit.Creditt
    Saisie2+=Credit.vers
  FIN
FIN
Saisie3=Saisie1-Saisie2

var1+=var2 est plus rapide que var1 = var1 + var2

ou alors dans le meme esprit que votre code
Saisie1=0
Saisie2=0
Saisie3=0
//Initilisation du parcours OK
HLitPremier(Credit,Numclient)
//On parcours tant pas en dehors OK
TANTQUE PAS HEnDehors(Credit)
  SI Credit.Numclient=table.numclient ALORS
    Saisie1=Saisie1+Credit.Creditt
    Saisie2=Saisie2+Credit.vers
  FIN
  //On passe au suivant dans tous les cas
  HLitSuivant(Credit,Numclient)
FIN
Saisie3=Saisie1-Saisie2

Cette contribution était de : http://old.wdforge.org/newbb/viewtopic.php?forum=14&topic_id=4616&post_id=19152