1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies. En savoir plus.
  2. Bonjour tout le monde ! Veillez consulter la Politique de forum pour comprendre nos règles, Merci a vous !
    Rejeter la notice

AIDE Comparaison de 2 tables fichier

Discussion dans 'Résolution problème & conseils' créé par Bip_bip, Juil 15, 2020.

  1. Bip_bip

    Bip_bip Member
    MEMBRE WX

    Inscrit:
    Jan 1, 2018
    Messages:
    51
    J'aime reçus:
    28
    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...
     
  2. khaliassas

    khaliassas Active Member

    Inscrit:
    Mar 4, 2019
    Messages:
    446
    J'aime reçus:
    142
    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
     
     
    Bip_bip apprécie ceci.
  3. Bip_bip

    Bip_bip Member
    MEMBRE WX

    Inscrit:
    Jan 1, 2018
    Messages:
    51
    J'aime reçus:
    28

    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...

    Bonjour Khaliassas,
    Tu as bien compris, j'ai testé ce matin sans rien changer ça fonctionne et c'est plus rapide lors de l’exécution, merci beaucoup pour ton aide.
    Bip Bip....
     

Partager cette page

Chargement...