PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV 2024 → Le dernier enregistrement figure 2 fois !
Le dernier enregistrement figure 2 fois !
Started by jplucien, Apr., 21 2006 1:33 AM - 2 replies
Posted on April, 21 2006 - 1:33 AM
Je fais un fichier texte depuis une requête test. Le dernier enregistrement de la requête est écrit 2 fois dans le fichier texte (tantque pas hendehors....)

voici le code

FF est un entier = fOuvre("C:\temp\MonFic.txt",foCréation)
MaLigne est une chaîne
sdREQ est une Source de Données
strSQL est une chaîne
strSQL = "SELECT * FROM Test"
HExécuteRequêteSQL(sdREQ,hRequêteDéfaut,strSQL)
HLitPremier(sdREQ)
MaLigne = MaLigne + sdREQ.Nom + " " + sdREQ.PRENOM + " " + sdREQ.VILLE
fEcritLigne(FF,MaLigne)
TANTQUE PAS HEnDehors(sdREQ)
HLitSuivant(sdREQ)
fEcritLigne(FF,CR + sdREQ.nom + " " + sdREQ.PRENOM + " " + sdREQ.VILLE + CR)
FIN
fFerme(FF)

Comment éviter ce problème?

Merci de votre aide
Posted on April, 21 2006 - 1:38 AM
Pat a pensé très fort :
Je fais un fichier texte depuis une requête test. Le dernier enregistrement
de la requête est écrit 2 fois dans le fichier texte (tantque pas
hendehors....)

voici le code

FF est un entier = fOuvre("C:\temp\MonFic.txt",foCréation)
MaLigne est une chaîne
sdREQ est une Source de Données
strSQL est une chaîne
strSQL = "SELECT * FROM Test"
HExécuteRequêteSQL(sdREQ,hRequêteDéfaut,strSQL)
HLitPremier(sdREQ)
MaLigne = MaLigne + sdREQ.Nom + " " + sdREQ.PRENOM + " " +
sdREQ.VILLE fEcritLigne(FF,MaLigne)
TANTQUE PAS HEnDehors(sdREQ)
HLitSuivant(sdREQ)
fEcritLigne(FF,CR + sdREQ.nom + " " + sdREQ.PRENOM + " " +
sdREQ.VILLE + CR) FIN
fFerme(FF)

Comment éviter ce problème?

Merci de votre aide


A la lecture du code, il doit manquer le premier enregistrement en plus
d'avoir le dernier en double !
Le HLitSuivant n'est pas bien placer, il faut le mettre juste avant le
"FIN" de la boucle TANT QUE.

Cependant vous pouvez utiliser un "POUR TOUT" qui supprime ces
écritures. Exemple :

POUR TOUT sdREQ
fEcritLigne(FF,CR + sdREQ.nom ...)
FIN

A+
Posted on April, 21 2006 - 4:52 PM
HExécuteRequêteSQL(sdREQ,hRequêteDéfaut,strSQL)
HLitPremier(sdREQ)
TANTQUE PAS HEnDehors(sdREQ)
fEcritLigne(FF,maligne)
HLitSuivant(sdREQ)
FIN
fFerme(FF)


Pat a écrit :
Je fais un fichier texte depuis une requête test. Le dernier enregistrement de la requête est écrit 2 fois dans le fichier texte (tantque pas hendehors....)

voici le code

FF est un entier = fOuvre("C:\temp\MonFic.txt",foCréation)
MaLigne est une chaîne
sdREQ est une Source de Données
strSQL est une chaîne
strSQL = "SELECT * FROM Test"
HExécuteRequêteSQL(sdREQ,hRequêteDéfaut,strSQL)
HLitPremier(sdREQ)
MaLigne = MaLigne + sdREQ.Nom + " " + sdREQ.PRENOM + " " + sdREQ.VILLE
fEcritLigne(FF,MaLigne)
TANTQUE PAS HEnDehors(sdREQ)
HLitSuivant(sdREQ)
fEcritLigne(FF,CR + sdREQ.nom + " " + sdREQ.PRENOM + " " + sdREQ.VILLE + CR)
FIN
fFerme(FF)

Comment éviter ce problème?

Merci de votre aide