- #include <stdio.h>
-
- //usage du programme sous dos:
- //compare [nom de fichier 1] [nom de fichier 2]
-
- int i; //declaration des variables.........
- int j;
- char fichier1[1];
- char fichier2[2];
-
- __int64 compteur=0; //au cas ou le fichier est tres tres gros.....................
- char diff[1000000]; //tableau qui va recenser toutes les différences, ici jusqu'a un million mais on peut mettre moins sinon ça bouffe pas mal de memoire.
-
- main(int argc, char **argv) //parametres de la fonction main lors du lancement du programme
- {
- FILE *file; //pointeurs sur le fichier
- char szBuffer; //et la variable contenant le caractere tiré du fichier
- FILE *file2;
- char szBuffer2;
-
- if(argc==0){ //on verifie que le programme a bien ete lance avec deux parametres (les deux noms de fichier)
- printf("\n\nil manque un ou deux parametres");
- return 0;
- }
- i=0;
- if((file = fopen(argv[1], "r")) != NULL) //on ouvre le premier fichier et verifie si on y arrive
- {
-
- if((file2 = fopen(argv[2], "r")) != NULL) //on ouvre le deuxieme fichier et verifie si on y arrive
- {
- printf("\n\n Origin. Derive n. char\n\n");
- while (!feof(file)) //tant que la fin du fichier1 n'est pas atteinte (d'ou l'importance d'avoir deux fichiers de taille identique sinon comment les comparer?)
- {
- compteur++;
- fread(&szBuffer, 1, 1, file); //on remplit chaque variable avec un nouveau caractere du fichier
- fread(&szBuffer2, 1, 1, file2);
- if(szBuffer != szBuffer2){ //on les compare et s'ils sont différents...
- diff[i] = compteur; //on garde le numero du caractere (sa place dans le fichier)
- printf(" %c %c ",szBuffer,szBuffer2); //on affiche la différence
- printf(" %d\n",compteur);
- i++; //on incremente la position dans le tableau des différences
- }
-
- }
- fclose(file2); //on ferme les fichiers en fin de boucle
- }
- fclose(file);
-
- if(i==0){ //si aucune différence on le dit
- printf("\n\nfinito!!! pas de differences sur %d caracteres!",compteur);
- }
- else{ //sinon on en affiche le nombre ainsi que le nombre de caracteres du (des) fichiers (facultatif!)
- printf("\n\nfinito!!! %d differences sur %d caracteres \n",i,compteur);
- }
- }
- return 0; //la fonction main retourne 0 et on rend la main au dos)
- }
-
- //voila C terminé!!! lol
#include <stdio.h>
//usage du programme sous dos:
//compare [nom de fichier 1] [nom de fichier 2]
int i; //declaration des variables.........
int j;
char fichier1[1];
char fichier2[2];
__int64 compteur=0; //au cas ou le fichier est tres tres gros.....................
char diff[1000000]; //tableau qui va recenser toutes les différences, ici jusqu'a un million mais on peut mettre moins sinon ça bouffe pas mal de memoire.
main(int argc, char **argv) //parametres de la fonction main lors du lancement du programme
{
FILE *file; //pointeurs sur le fichier
char szBuffer; //et la variable contenant le caractere tiré du fichier
FILE *file2;
char szBuffer2;
if(argc==0){ //on verifie que le programme a bien ete lance avec deux parametres (les deux noms de fichier)
printf("\n\nil manque un ou deux parametres");
return 0;
}
i=0;
if((file = fopen(argv[1], "r")) != NULL) //on ouvre le premier fichier et verifie si on y arrive
{
if((file2 = fopen(argv[2], "r")) != NULL) //on ouvre le deuxieme fichier et verifie si on y arrive
{
printf("\n\n Origin. Derive n. char\n\n");
while (!feof(file)) //tant que la fin du fichier1 n'est pas atteinte (d'ou l'importance d'avoir deux fichiers de taille identique sinon comment les comparer?)
{
compteur++;
fread(&szBuffer, 1, 1, file); //on remplit chaque variable avec un nouveau caractere du fichier
fread(&szBuffer2, 1, 1, file2);
if(szBuffer != szBuffer2){ //on les compare et s'ils sont différents...
diff[i] = compteur; //on garde le numero du caractere (sa place dans le fichier)
printf(" %c %c ",szBuffer,szBuffer2); //on affiche la différence
printf(" %d\n",compteur);
i++; //on incremente la position dans le tableau des différences
}
}
fclose(file2); //on ferme les fichiers en fin de boucle
}
fclose(file);
if(i==0){ //si aucune différence on le dit
printf("\n\nfinito!!! pas de differences sur %d caracteres!",compteur);
}
else{ //sinon on en affiche le nombre ainsi que le nombre de caracteres du (des) fichiers (facultatif!)
printf("\n\nfinito!!! %d differences sur %d caracteres \n",i,compteur);
}
}
return 0; //la fonction main retourne 0 et on rend la main au dos)
}
//voila C terminé!!! lol