Bonjour ,
je suis confronté à un problème que j'ai dû mal à régler sur un projet que je fais en ce moment ; en fait c'est tjrs lié à l'autre sujet que j'ai évoqué .
j'explique l'enchainement :
j'ai un fichier principal (fench ): y a des gagnants (G) et des perdants >
après je dois recenser à partir de ce fichier seulement les gagnants (G) disons je vais stocker les gagnants dans un fichier (Intermédiaire ) dc dans ce dernier fichier on peut avoir des données de ce type :
CLE PRIMAIRE(numlot,numach)
cle secondaire(numach)
le problème comme vous pouvez le voir c'est qu'il se peut qu'il y a des exequos cas du lot num 001 et on a décidé que le premier qui propose qui gagne donc ici c'est 1 (mais si il gagne après plusieurs offres c'est le cas on le considère comme gagnant au sort donc on change EtatO à H)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 numlot numach AEXP EtatO montant Datench 001 1 "o" "G" 100 2000 001 2 "n" "G" 100 2004 001 3 "o" "G" 100 2005 002 1 "n" "G" 90 2007 003 2 "n" "G" 120 2008 004 4 "o" "G" 400 2007
mais s'il gagne avec une offre unique cas de 1 sur le lot numlot 002 il gagne et son Etat0 reste G
donc le reste 2 et 3 sont considérés perdant au sort et il faudrait changer leur EtatO Q
ma question face à ce genre de problème c'est que comment reconnaitre qu'il y a une autre offre sur le même lot après
par exemple si on la reference est sur l'aheteur 1 du lot numlot 001
comment reconnaitre qu'il ya encore d'autres offres sur ce lot afin de changer l'Etat0 de numach 1
j'ai fait un algo mais je coince sur ce point :
mais je ne sais pas trop comment 'y prendre face à ce genre de problème vu qu'on ne connait pas l'élement suivant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 ouvrir (Intermédiaire,lecture) lire(Intermédiaire) tant que non fdf (Intermédiaire) faire ref1 = Intermédiaire.numlot place = 0 ; // pr savoir son rang dans l'offre tantque Intermédiaire.numlot = ref1 faire si place = 0 Intermédiaire.Etat0 = "G" ou "H" // c'est ici on ne sait pas le suivant place ++ // pr dire qu'il y déjà une offre sinon //les perdants au sort Intermédiaire.Etat0 = "Q" finsi liresuivant(Intermédiaire) fintanque fintanque fermer(Intermédiaire)
je ne sais pas mais j'ai appris qu'il y a un indice permettant de tester la référence la plus haute d'une clé spécifique mais je ne sais pas si on pourra le tester avec HIGH-VALUEou à quoi çà sert vraiment
il y a aussi l'instruction Start
merci d'avance pour vos aides précieuses
Partager