begin process at 2012 05 28 18:44:14
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Débutant(e)

 > 

Comparer 2 fichiers Texte


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Comparer 2 fichiers Texte

samedi 9 mai 2009 à 09:30:55 | Comparer 2 fichiers Texte

ashlee14

Bonjour,

Je me permets de poster ce message car j'ai un petit souci dans ma programmation en C.
Je vous expose mon souci : J'ai deux fichiers texte qui sont de taille différente et je dois les comparer.
La première chose que j'ai faite c'est d'ouvrir mes deux fichiers. Mais aprés je ne sais pas du tout comment faire et c'est là que j'ai besoin de votre aide.

Je vous remercie par avance.

Ps: Si vous souhaitez plus d'explication je vous en donnerais.
samedi 9 mai 2009 à 11:10:22 | Re : Comparer 2 fichiers Texte

CptPingu

Administrateur CodeS-SourceS
Si tu dois juste réaliser une comparaison de ces fichiers, tu peux faire ceci:

Fonction comparer (fichier1, fichier2) : Booléen
  Ouverture de deux fichiers.
  Tant que (non (est à la fin de fichier 1) et non (est à la fin de fichier 2) faire
    Récupérer ligne i du fichier 1
    Récupérer ligne i du fichier 2
    Comparer ces deux lignes, avec strcmp.
    Si les lignes sont différentes, fermer les deux fichiers et retourner Faux.
    Sinon ne rien faire, et continuer.
  Fin tant que
  Si fichier1 ou fichier2 n'est pas à la fin
     alors l'un des deux fichiers est plus grand que l'autre,
     donc on ferme les deux fichiers et on retourne Faux
  Sinon
     Fermeture de deux fichiers.
     Retourner Vrai
  Fin Si
Fin fonction
samedi 9 mai 2009 à 12:04:48 | Re : Comparer 2 fichiers Texte

nhervagault

Administrateur CodeS-SourceS
SAlut,

Il y a winmerge qui le fait bien?

samedi 9 mai 2009 à 12:16:07 | Re : Comparer 2 fichiers Texte

CptPingu

Administrateur CodeS-SourceS
Il y a surtout "Kompare" (que je trouve vraiment mieux), mais je pense que le but est juste de coder une fonction de comparaison, pas d'utiliser un outil de "diff".
samedi 9 mai 2009 à 12:40:40 | Re : Comparer 2 fichiers Texte

BruNews

Administrateur CodeS-SourceS

"recuperer ligne ..."
pourquoi perdre du temps à chercher des fins de ligne ???

lenfich1 = longueur fichier1
lenfich2 = longueur fichier2
contverif = MIN(lenfich1, lenfich2)

2 buffers de 1 Mo

tant que contverif:
  n = 1Mo;
  if(n > contverif) n = countverif;
  countveirf -= n;
  Aspirer n octets de fich1 dans buffer1
  Aspirer n octets de fich2 dans buffer2
  for(i = 0; i < n; i++) {
    if(buffer1[i] != buffer2[i]) AFFICHER_CE_QUE_TU_VEUX;
  }
fin tant que

ciao...
BruNews, MVP VC++

samedi 9 mai 2009 à 13:55:21 | Re : Comparer 2 fichiers Texte

vecchio56

Administrateur CodeS-SourceS
BruNews, en fait ca dépend du type de comparaison que tu veux faire. Par exemple WinMerge te permet de comparer des fichiers en affichant des insertions/suppressions de lignes d'un fichier par rapport à l'autre, du coup tu es obligé de raisonner sur des lignes.
Un lien pour répondre à la question de départ : [ Lien ]

_____________________________________
Un éditeur de ressources gratuit pour Windows

vendredi 15 mai 2009 à 14:21:51 | Re : Comparer 2 fichiers Texte

ashlee14

Aprés avoir suivi le post de cptpingu j'ai continué mon programme mais j'ai toujours un petit souci.
Maintenant il y a juste mon fichier texte qui s'ouvre et plus mon fichier dictionnaire. donc la suite ne peut pas se réaliser. Pourquoi ?

Merci pour votre aide

Le code en question :

#include <stdio.h>
#include <stdlib.h>
#define TAILLE_MAX 1000


typedef struct dico
{
char lettre;
char* mot;
struct ARBRE* fils;
struct ARBRE* frere;
}arbredico;


void ouvrir ()
{
    char choix[256];
    char chaine [TAILLE_MAX] = "";

    printf("Quel fichier voulez vous ouvrir? mettre l'extention .txt\n");
    scanf("%s",choix);

  FILE* fichier = NULL;

  fichier = fopen (choix, "r");

  if (fichier != NULL)
  {
      while (fgets(chaine, TAILLE_MAX, fichier) != NULL) // on lit le fichier tant qu'on ne reçoit pas d'erreur NULL
      {
            printf ("%s", chaine); // on affiche la chaine qu'on vient de lire
      }
  }
  fclose (fichier);
}

void dictionnaire ()
{
    char chaine [TAILLE_MAX];

    FILE* arbredico = NULL;
    arbredico =fopen ("dico.txt","r");
     if (arbredico != NULL)
  {
      while (fgets(chaine, TAILLE_MAX, arbredico) != NULL) // on lit le fichier tant qu'on ne reçoit pas d'erreur NULL
      {
            printf ("%s", chaine); // on affiche la chaine qu'on vient de lire
      }
  }
}


int comparer(*fichier, *arbredico)
{
    while (!EOF( fichier) && (!EOF( arbredico)
        {
            for (int i=0; i<256;i++)
                {
                    fgets (ligne[i].fichier);
                    fgets (ligne[i].arbredico);
                    strcmp (ligne[i].fichier && ligne[i].arbredico);
                    if
                        {
                            ligne[i].fichier != ligne[i].arbredico;
                            fclose (fichier);
                            fclose (arbredico);
                        }
                }
        }
}


int main ()
 {
     char choix[256];
     char dico[26];
     ouvrir (choix, TAILLE_MAX);
     dictionnaire (dico);

 }

samedi 23 mai 2009 à 09:24:34 | Re : Comparer 2 fichiers Texte

ashlee14

Concernant mon code on m'a conseillé d'utiliser un radix tree pour stocker les mots du dictionnaire. Mais le souci c'est que je ne sais pas comment faire est ce que quelqu'un peut me m'aider.

Merci


Cette discussion est classée dans : comparer, texte, fichiers, souci


Répondre à ce message

Sujets en rapport avec ce message

Comparer du texte (boucle if) [ par guitoulefoux ] Bonjour,J'ai besoin d'un peut d'aide.Je recupere le chemin de mon programme puis je cherche à savoir si le chemin est celui que je veux.Voici mon code Win32 et les fichiers [ par platon179 ] Bonjour, j'ai un petit souci pour lire les fichiers texte sous windowsComment faut-il faire pour lire une seule ligne complète d'un fichier texte, un utilisation des fichiers texte en Langage C [ par cam_b ] Bonjour, Je suis une débutante en Langage et il y a quelques temps j'ai travaillé sur les fichiers texte mais je ne m'en sors pas très bien, serait-i SDL en c [ par gsaly ] Bonjour,Je suis débutant ds l'utilisation de SDL en c pour concevoir un jeu. Pour cela j'ai des fichiers texte à charger pour tracailler avec.J'aimera écrire des nombres dans un fichiers [ par leuk ] Salut,J'essaie d'écrire des nombre dans un fichier texte en utilisant WriteFile(). Je précise que c'est de l'unicode j'arrive trés bienà écrire un tex comparer fichiers NetCDF [ par guiltyspark ] Bonjour,Je souhaiterais comparer deux ensembles de fichiers NetCDF pour voir s'il y a des différences entre les deux (normalement, il ne devrait pas y Chercher un string dans un fichier texte ? [ par chtitpierre78 ] Bonjour,Je développe actuellement un outils en C++ (VisualC++) qui me permet de comparer 2 fichiers textes (.txt) d'environ 4Mo chacun (soit environ 6 editeur de texte pour gros fichiers [ par yepla75 ] Salut les gens,Un problème du notepad (et aussi word, wordpad), c'est que pour ouvrir de gros fichiers texte (>100Mo), ça rame, voire ça plante.Si on parcours des fichiers texte via un pointeur en C++ [ par tghatrech ] salut  j'aimerais savoir comment parcourir un fichier texte a la recherche d'une chaine indiquée.via un pointeur et que sera le type de ce pointeur? ecrire dans un fichiers texte [ par bossou ] bonjour à tous. j'ai écris un programme en c qui me permet de saisir les informations sur un gérant de magasin et ses employés.je voudrais par la suit


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,326 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales