PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV 2024 → pb de code
pb de code
Iniciado por mlion, out., 04 2005 4:23 PM - 3 respostas
Publicado em outubro, 04 2005 - 4:23 PM
Je me torture l'esprit depuis cet après-midi.
Soit un fichier HF avec comme zones :
ID_unique Numero_1 Numero_2

Exemples d'enregistrement
25 1 1
25 1 2
25 8 1
25 8 3
25 10 3
26 3 2
26 5 4
26 8 1

Je voudrais transformer tous les Numero_1 de manière à avoir pour chaque ID_unique
les Numero_1 qui commencent à 1 et qui se suivent avec toujours + 1. Je m'explique : en prenant les enregistrements ci-dessus je voudrai au final :

25 1 1
25 1 2
25 2 1
25 2 3
25 3 3
26 1 2
26 2 4
26 3 1

Je m'essaye mais sans succès. De plus j'ai une question : je parcours mes enregistrements suivant une clé composée de (ID_unique+Numero_1+Numero_2) le fait de modifier Numero_1 comment va se poursuivre le parcours ???

Merci de vos propositions.

Michel.
Publicado em outubro, 04 2005 - 7:58 PM
Salut


Je ne comprend pas comment tu peux avoir 5 enreg. avec le même
identifiant unique !

Sinon, effectivement la clé composée semble toute indiquée.

--

Ciao
Pat Biker
http://aaa.windev.free.fr/


On Tue, 4 Oct 2005 14:23:19 +0100, "lion" <mlion@tele2.fr> wrote:


Je me torture l'esprit depuis cet après-midi.
Soit un fichier HF avec comme zones :
ID_unique Numero_1 Numero_2

Exemples d'enregistrement
25 1 1
25 1 2
25 8 1
25 8 3
25 10 3
26 3 2
26 5 4
26 8 1

Je voudrais transformer tous les Numero_1 de manière à avoir pour chaque ID_unique
les Numero_1 qui commencent à 1 et qui se suivent avec toujours + 1. Je m'explique : en prenant les enregistrements ci-dessus je voudrai au final :

25 1 1
25 1 2
25 2 1
25 2 3
25 3 3
26 1 2
26 2 4
26 3 1

Je m'essaye mais sans succès. De plus j'ai une question : je parcours mes enregistrements suivant une clé composée de (ID_unique+Numero_1+Numero_2) le fait de modifier Numero_1 comment va se poursuivre le parcours ???

Merci de vos propositions.

Michel.
Publicado em outubro, 05 2005 - 2:01 AM
Bonjour,

Michel à ecrit :

Je me torture l'esprit depuis cet après-midi.
Soit un fichier HF avec comme zones :
ID_unique Numero_1 Numero_2

Exemples d'enregistrement
25 1 1
25 1 2
25 8 1
25 8 3
25 10 3
26 3 2
26 5 4
26 8 1

Je voudrais transformer tous les Numero_1 de manière à avoir pour chaque ID_unique
les Numero_1 qui commencent à 1 et qui se suivent avec toujours + 1. Je m'explique : en prenant les enregistrements ci-dessus je voudrai au final :

25 1 1
25 1 2
25 2 1
25 2 3
25 3 3
26 1 2
26 2 4
26 3 1

------------------------------------------------------------------------------
Essaye de lancer ce changement dans une fenetre où tu crée une table qui contient les colonnes ci-dessous :

Id_cle Ancien_Num_1 Ancien_Num_2 Nouv_Num_1 Nouv_Num_2

Puis boucle sur les enregistrement que tu as pour remplir la table comme suite :

Id_cle Anc_Num_1 Anc_Num_2 Nouv_Num_1 Nouv_Num_2
25 1 1
25 1 2
25 8 1
25 8 3
25 10 3
26 3 2
26 5 4
26 8 1

Puis tu commence a parcourir le tableau pour couriger les modifs a effectuer dans les nouvelles colonnes pour avoir :
Id_cle Anc_Num_1 Anc_Num_2 Nouv_Num_1 Nouv_Num_2
25............. 1..............1.................. 1..................1
25 1 2 1 2
25 8 1 2 1
25 8 3 2 3
25 10 3 3 3
26 3 2 1 2
26 5 4 2 4
26 8 1 3 1
puis à la fin :

d est un entier
pour d=1 à tableoccurrence(matable)
hlitrecherche(monfichier,maclécompose,construitcle(.... avec les ancieenes valeurs à gauche))
si htrouve(monfichier)
monfichier.Numero_1=Nouv_num_1[d]
monfichier.Numero_2=Nouv_num_2[d]
si pas hmodifie(monfichier)
erreur(Compte rendu de l'erreur)
fin
fin
fin

Bon dev

Ali Hindi : AliDev7@yahoo.fr
Publicado em outubro, 05 2005 - 10:35 AM
En effet mon premier champ n'est pas un identifiant unique, le nom que je lui ai donné pour ce post peut prêter à confusion !

Néanmoins, j'ai trouvé une solution avec des Hlit...
J'utilise ma clé composée pour faire mon parcours et je modifie également les valeurs de l'enregistrement qui sont dans cette clé. Je fais un hlitsuivant et je tombe obligatoirement le bon enregistrement suivant et ainsi de suite...

Exemple :
25 1 2 -> ma clé 25,1,2 : pas de modifs
25 1 3 -> ma clé 25,1,3 : pas de modifs
25 4 1 -> ma clé 25,4,1 : modif en 25 2 1 je fais un hlitsuivant et tombe sur 25,6,2
25 6 2 -> ma clé 25,6,2 : modif en 25 3 1 je fais un hlitsuivant et tombe sur le prochain..

Dans mon cas cela fonctionne !!! MAIS je pense que pacourir un fichier suivant une clé et modifier les valeurs de cette vont fausser le parcours ... Donc attention !!!!