ashlee14
Messages postés8Date d'inscriptionsamedi 13 décembre 2008StatutMembreDernière intervention30 janvier 2010
-
9 mai 2009 à 09:30
ashlee14
Messages postés8Date d'inscriptionsamedi 13 décembre 2008StatutMembreDernière intervention30 janvier 2010
-
23 mai 2009 à 09:24
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.
A voir également:
Comparer deux fichiers texte en ligne
Comparer deux textes - Meilleures réponses
Comparer deux fichiers en ligne - Meilleures réponses
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
ashlee14
Messages postés8Date d'inscriptionsamedi 13 décembre 2008StatutMembreDernière intervention30 janvier 20101 15 mai 2009 à 14:21
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 ?
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);
cptpingu
Messages postés3840Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention23 août 2024126 9 mai 2009 à 11:10
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
cptpingu
Messages postés3840Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention23 août 2024126 9 mai 2009 à 12:16
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".
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 9 mai 2009 à 13:55
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 : http://en.wikipedia.org/wiki/Longest_common_subsequence
ashlee14
Messages postés8Date d'inscriptionsamedi 13 décembre 2008StatutMembreDernière intervention30 janvier 20101 23 mai 2009 à 09:24
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.