IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

Comparer 2 fichiers [WD23]


Sujet :

WinDev

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2009
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 17
    Points : 8
    Points
    8
    Par défaut Comparer 2 fichiers
    Bonjour,
    J'ai 2 fichiers dont les structures ne sont pas les mêmes sauf une seule rubrique (N° de licences).
    Le fichier A peut contenir plusieurs fois le nom et le numéro de licence d'une même personne par contre le fichier B ne peut contenir qu'une seule fois le nom et le numéro de la licence de la même personne. Pour remplir le fichier B, je dois faire une comparaison entre les deux fichiers et n'ajouter dans le fichier B que les numéros de licences qui n'y existent pas.
    C'est impossible par exemple, j'ai fait la comparaison le remplissage de 2 tables (une pour le fichier A et la 2ème pour le fichier B) et remplir une 3ème table par les enregistrement du A qui n'existe pas dans B, le résultat j'ai eu plus de 100000 enregistrements qui existent d'ailleurs dans les 2 fichiers. Sans plus tarder voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    TableTrie(TableImport, "Num_licence")
    TableTrie(Table_Ranking_lists, "Num_licence")
     
    POUR li_i=1 _À_ TableOccurrence(TableImport)
    	SI TableCherche(Table_Ranking_lists,Num_licence,Vrai,1)=-1 ALORS
    	TableAjoute(TABLE_comparaison,TableImport[li_i])
    FIN
    FIN
    merci pour votre aide

  2. #2
    Membre actif
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Mai 2015
    Messages
    138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur COBOL

    Informations forums :
    Inscription : Mai 2015
    Messages : 138
    Points : 270
    Points
    270
    Par défaut
    Bonjour,

    Déjà sur le fichier B tu déclare les champs en question en clé unique.

    Pour ce qui est de ton code, je m'y prendrais pas du tout comme tu fait.

    Edit: utilise les balises(#) pour ton code, cela sera plus lisible.

  3. #3
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 053
    Points : 9 392
    Points
    9 392
    Par défaut
    Comme Rudolf, je ne passerais pas du tout par des tables pour ce genre de traitement. Les commandes SQL sont parfaites pour ça :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select num_licence from fichier_A
    minus 
    select num_licence from fichier_B

    Mais restons sur l'utilisation de tables, et de la fonction TableCherche.
    Le 1er paramètre de la fonction TableCherche, ça doit être le nom de la colonne qui contient les n°s de licence , et pas un nom de table. Donc : SI TableCherche("Table_Ranking_lists.num_licence",Num_licence,Vrai,1)=-1 ALORS
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  4. #4
    Futur Membre du Club
    Inscrit en
    Mars 2009
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 17
    Points : 8
    Points
    8
    Par défaut
    Merci mes chers amis pour votre collaboration. Toutefois, j'ai trouvé un bout de code sur le forum de PCSOFT qui a résolut mon problème
    Merci à vous
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    nPrevNumFact est un entier=0
     
    POUR TOUT Athlètes_Engagés  SUR Num_licence
     
    	SI Athlètes_Engagés.Num_licence=nPrevNumFact ALORS
    		HSupprime(Athlètes_Engagés)
    	FIN
    	nPrevNumFact=Athlètes_Engagés.Num_licence
    FIN

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [File]Comparer 2 fichiers
    Par onlytoine dans le forum Entrée/Sortie
    Réponses: 8
    Dernier message: 05/12/2005, 17h24
  2. Fonction c qui compare deux fichiers ???
    Par babyface dans le forum C
    Réponses: 4
    Dernier message: 19/11/2005, 13h07
  3. Comparer 2 fichiers
    Par GuiltyX dans le forum Shell et commandes GNU
    Réponses: 6
    Dernier message: 10/11/2004, 01h35
  4. [LG][FAQ]comparer des fichiers
    Par lucke dans le forum Langage
    Réponses: 11
    Dernier message: 01/06/2003, 18h02
  5. Comparer des fichiers de données : Quel Langage ?
    Par Anonymous dans le forum Langages de programmation
    Réponses: 6
    Dernier message: 24/04/2002, 22h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo