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

C Discussion :

Comparaison de deux fichiers


Sujet :

C

  1. #1
    Membre averti
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Avril 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 47
    Par défaut Comparaison de deux fichiers
    Bonjour à toutes et à tous,

    dans le cadre d'un projet perso, j'ai besoin de comparer deux fichiers pour trouver leurs différences (en gros je cherche à faire un 'diff' unix), mais le code doit être portable (Linux & Windows). j'ai vu que diff existait sous windows, mais je voudrais éviter un appele système de la commande diff, éventuellement en appelant directement une fonction depuis les sources de GNUDiff.

    Avez-vous des retours d'experience là dessus ? Merci d'avance.

  2. #2
    Membre éclairé Avatar de archer
    Ingénieur développement logiciels
    Inscrit en
    Mai 2007
    Messages
    338
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 338
    Par défaut
    Salut
    Si tu veux faire la comparaison en terme de caractères alors l’une des méthodes est la suivante:
    - ouvrir les deux fichiers
    - lire les deux fichiers ligne par ligne en les mettant dans deux tableaux tout en utilisant un compteur sur les lignes.
    - comparer les caractères des deux tableaux
    - au cas de différence afficher que dans telle ligne il y différence au niveau de tels caractères
    - vérifier si les deux fichiers contiennent le même nombre de caractères sinon l’indiquer.
    J’espère que c’est claire au cas où ce n’est pas la bonne repense, veillez l’indiquer en expliquant un peu plus le problème

  3. #3
    Membre Expert
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Par défaut
    Citation Envoyé par archer Voir le message
    Si tu veux faire la comparaison en terme de caractères alors l’une des méthodes est la suivante:
    L'algorithme de diff est plus complexe que cela. L'idee est de trouver la sequence la plus longue qui est commune aux deux fichiers. Il y a pas mal d'info sur le reseau, c'est un algorithme assez commun.

  4. #4
    Membre averti
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Avril 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 47
    Par défaut
    Merci de vos réponses à tous les deux.
    @ archer : en simplifiant au maximum (en tout cas l'idée, pas le code ^^), c'est à peu près cela le but, sachant qu'il y a plein de cas complexe (nombre d'espaces différents considéré comme identiques...etc)

    @ Dazumba : tu aurais quelques précision sur cette algorithme ? (au moins un nom, s'il en a un) J'ai cherché sur le net, j'ai pas trouvé grand chose...

  5. #5
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par Jeromnimo Voir le message
    Merci de vos réponses à tous les deux.
    @ archer : en simplifiant au maximum (en tout cas l'idée, pas le code ^^), c'est à peu près cela le but, sachant qu'il y a plein de cas complexe (nombre d'espaces différents considéré comme identiques...etc)

    @ Dazumba : tu aurais quelques précision sur cette algorithme ? (au moins un nom, s'il en a un) J'ai cherché sur le net, j'ai pas trouvé grand chose...
    Je ne vois pas trop ce que tu cherches à bricoler. Soit tu prends une application existante qui fait le boulot et tu utilises system() (pas de honte à ça...), soit tu définis ton algorithme selon tes propres critères et tu le codes.

  6. #6
    Membre Expert
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Par défaut
    Tu peux deja regarder ici et la. Google est egalement ton ami. Comme tu pourras le constater, l'implementation de cet algorithme n'est pas triviale. Les sources de diff doivent trainer quelque part (mais il est possible qu'elles ne soient pas tres lisibles...).

  7. #7
    Membre averti
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Avril 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 47
    Par défaut
    Citation Envoyé par Emmanuel Delahaye Voir le message
    Je ne vois pas trop ce que tu cherches à bricoler. Soit tu prends une application existante qui fait le boulot et tu utilises system() (pas de honte à ça...), soit tu définis ton algorithme selon tes propres critères et tu le codes.
    En fait deux choses :
    - eviter d'utiliser la commande diff pour ne pas générer un fichier temporaire (et ainsi pour enchainer un traitement sur le résultat du diff
    - pouvoir packager mon application une fois terminée (et éviter d'etre dépendant de la commande diff présente ou non...)

    Merci pour les liens DaZumba, les sources de diff je les ai deja, je vais voir si je peux comprendre et modifier le code avec tout cela ;-)

Discussions similaires

  1. Comparaison de deux fichiers Excel
    Par Fab_lux dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 15/08/2007, 21h41
  2. comparaison de deux fichiers
    Par john123 dans le forum API standards et tierces
    Réponses: 5
    Dernier message: 17/03/2007, 16h38
  3. Comparaison de deux fichiers EXCEL
    Par meufeu dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 18/10/2006, 22h56
  4. comparaison de deux fichiers textes
    Par chmaichel dans le forum Delphi
    Réponses: 1
    Dernier message: 28/07/2006, 11h35
  5. [langage] Comparaison de deux fichiers
    Par perlgirl dans le forum Langage
    Réponses: 4
    Dernier message: 04/05/2005, 16h05

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