PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WEBDEV 2024 → Parcourir un fichier - Simple ou difficile?
Parcourir un fichier - Simple ou difficile?
Débuté par Annie, 14 nov. 2004 11:56 - 7 réponses
Posté le 14 novembre 2004 - 11:56
Cle1 est une cle simple sur Champ1
Cle2 est une cle composee sur Champ1 + Champ2

Je voudrais parcourir mon fichier en utilisant la Cle2 mais uniquement sur
une valeur de Champ1 .
Comment faire? Champ1 est la premiere composante de Cle2 et donc il me
semble qu'il devrait etre possible de se positionner sur le premier
enregistrement de cette cle... et ensuite utiliser la meme cle de parcours.

Qu'est-ce qui ne va pas avec ce code?:

i est un entier = 0
BOUCLE
i++
SI i = 1 ALORS
HLitRecherche(MonFichier, Champ1, ValeurRecherchee)
SINON
HLitSuivant(MonFichier, Cle2)
FIN
SI HEnDehors() ALORS SORTIR
SI Champ1 <> ValeurRecherchee ALORS SORTIR

// code ...

FIN


-----------
Le code ci-dessus produit cette erreur:

Error : Aucun parcours n'a été amorcé pour la rubrique sur le fichier .
(70019)
Fct : HLitSuivant
Message : Aucun parcours n'a été amorcé pour la rubrique sur le fichier .
-----------

Si QQ1 a une idee...
Merci d'avance.

Annie
Posté le 15 novembre 2004 - 15:54
Salut

Tu ne peux pas commencer un parcours par une commande HLitSuivant. L'amorce de parcours doit être un HLitPremier, HLitRecherche, HLitRecherchePremier. Ensuite et seulement ensuite, tu pourras appeler hLitSuivant.

Ciao
http://wdgotcha.atspace.com
Posté le 15 novembre 2004 - 20:19
Oui c'est ce que j'avais. Mais j'ai fini par trouver comment faire:

i est un entier = 0
BOUCLE
i++
SI i = 1 ALORS
Rech est une chaîne
Rech = HConstruitValClé(MonFichier, Cle2, ValeurRecherchee, "")
HLitRecherche(MonFichier, Cle2, Rech)
SINON
HLitSuivant(MonFichier, Cle2)
FIN
SI HEnDehors() ALORS SORTIR
SI Champ1 <> ValeurRecherchee ALORS SORTIR

// code ...

FIN

Dommage que WebDev ne fasse pas plus simple. Quelque chose du genre:

Champ1 = MaValeur
Champ2 = ""
set(Cle2) //positionne sur l'enregistrement correspondant a la cle
initialisee
boucle
Lire(MonFichier) // lire le fichier suivant la cle
SI HEnDehors() ALORS SORTIR
SI Champ1 <> ValeurRecherchee ALORS SORTIR

// code ...

fin

Ca serait vraiment bien pour Noel...

Annie



-------------------------
"Patrick Biker" <patrick.biker@wdgotcha.atspace.com> wrote in message
news:4198ab5e$1@news.pcsoft.fr...

Salut

Tu ne peux pas commencer un parcours par une commande HLitSuivant.
L'amorce de parcours doit être un HLitPremier, HLitRecherche,
HLitRecherchePremier. Ensuite et seulement ensuite, tu pourras appeler
hLitSuivant.

Ciao
http://wdgotcha.atspace.com


Posté le 16 novembre 2004 - 12:35
Bonjour

Voici une solution simple :

HLitRecherchePremier(MonFichier, Cle2, HConstruitValClé(MonFichier,Cle2,ValeurRecherchee),hGénérique)
TANTQUE PAS HEnDehors(MonFichier)
//enregistrement en ligne
HLitSuivant(MonFichier,Cle2)
FIN
Posté le 17 novembre 2004 - 15:34
et que dirais-tu d'un

POUR TOUT NomFichier SUR cleparcour AVEC "Nom champ="+ValeurRechercher
Traitement de la boucle
FIN
Posté le 21 novembre 2004 - 13:51
Interressant. Je ne connaissais pas. Mais est-ce cela ne parcourt pas tout
le fichier?

Annie


"So07" <sonia_vernet@hotmail.com> wrote in message
news:419b49ad$1@news.pcsoft.fr...

et que dirais-tu d'un

POUR TOUT NomFichier SUR cleparcour AVEC "Nom champ="+ValeurRechercher
Traitement de la boucle
FIN



Posté le 23 novembre 2004 - 15:58
POUR TOUT nom_Fichier
parcours tout le fichier

POUR TOUT nom_Fichier AVEC "IDCle="+Variable
parcours le fichier dont IDCle = variable

reviens au meme que
HFiltre(nom_Fichier,"IDCle="+variable)
POUR TOUT nom_Fichier

Regarde dans l'aide si tu veux des exemples
Posté le 24 novembre 2004 - 17:19
Et avec des requetes SQL ça ne serait pas plus simple ?