Bonjour, j'ai 2 tables de type identique contenant 1 colonne de Lettres (A,B,C,D etc) et 1 colonne de chiffres(1,2,3 etc). La première table a la colonne lettre remplie et les chiffres vide. La deuxième table est remplie avec les lettres et des chiffres correspondants (A,1;B,2;C,3 etc.). je souhaites comparer les lettres des 2 tables et lorsque ça correspond copier l'information du chiffre sur l'enregistrement correspondant dans la 1ere table colonne chiffre. Voici mon code (qui fonctionne...): [windev]HLitPremier(A_Completer,Lettre) HLitPremier(Données,Lettre) TANTQUE PAS HEnDehors(A_Completer) // On boucle dans les enregistrements du fichier HLitRecherche(Données,Lettre,A_Completer.Lettre,hIdentique) SI HTrouve(A_Completer)=Vrai ALORS // on trouve la correspondance SI A_Completer.Lettre=Données.Lettre ALORS //on verifie Trace(A_Completer.Lettre,Données.Lettre) // Actions sur chaque enregistrement A_Completer.Chiffre=Données.Chiffre HModifie(A_Completer) // On effectue l’action décrite au-dessus SINON // Donnees differentes A_Completer.Chiffre="" HModifie(A_Completer) FIN SINON SI (HLitDernier(A_Completer) ET HLitDernier(Données)) ALORS // si on est en fin de comparaison on sort SORTIR FIN FIN HLitSuivant(A_Completer)// On lit l'enregistrement suivant HLitPremier(Données)// On lit l'enregistrement suivant[/windev] Pour ceux qui ont de l’expérience (bien plus que moi...) est il possible d optimiser ce code ou de faire d'une autre façon cette comparaison, car même si ça fonctionne lorsqu'il y a 2 gros fichiers c'est long... Je suis la pour apprendre, alors allez y...! Bip Bip...
je sui pas sur d'avoir compris ce que tu veux, du coup je sais pas si c'es tca que tu veux faire : Code (Windev): pour tout A_Completer HLitRecherchepremier(Données,Lettre,A_Completer.Lettre,hIdentique) si htrouve(Données) alors A_Completer.Chiffre=Données.Chiffre sinon A_Completer.Chiffre="" fin hmodifie(A_Completer) fin
Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens! je sui pas sur d'avoir compris ce que tu veux, du coup je sais pas si c'es tca que tu veux faire : Code (Windev): pour tout A_Completer HLitRecherchepremier(Données,Lettre,A_Completer.Lettre,hIdentique) si htrouve(Données) alors A_Completer.Chiffre=Données.Chiffre sinon A_Completer.Chiffre="" fin hmodifie(A_Completer) fin Cliquez pour agrandir...