cybkiller Un clavier AZERTY en vaut deux | Banzaïïïïïïï !! c'est bon, le code fonctionne. Je le poste pour ceux que ça interesse : Code :
- #include <stdio.h>
- #include <stdlib.h>
- void decoder (FILE* f);
- void coder (FILE* k);
- int main (void)
- {
- printf("Execution de la fonction MAIN - OKn" );
- FILE* k = fopen("dessin.txt","r+" );
- coder(k);
- FILE* f = fopen("nv-code.txt","r" );
- decoder(f);
- printf("Fin de la fonction MAINn" );
- return 0;
- }
- void decoder (FILE* f)
- {
- char car;
- int i,occ,V;
- double k;
- FILE* d = fopen("dessin.txt","w+" );
- //printf("Vitesse ? (1-100000)" );
- //scanf("%d",&V);
- while(fscanf(f,"%d %d",&occ, &car)==2)
- {
- //fscanf(f,"&d &d",&occ, &car);
- for(i=0;i<occ;i++)
- {
- printf("%c",car);
- fprintf(d,"%c",car);
- }
- k = 0;
- //while(k<V)
- //k++;
- }
- fclose(f);
- fclose(d);
- }
- void coder (FILE* k)
- {
- printf("Debut fonction CODERn" );
- int lettre[100000]={0},occurences[100000]={0};
- char l;
- int i=1,nbc=0;
- printf("Initialisation des variables - OKn" );
- FILE* nv = fopen("nv-code.txt","w+" );
- if (nv != NULL)
- printf("Creation nv-code - OKn" );
- while(fscanf(k,"%c",&l) != EOF)
- {
- //printf("Entree dans boucle (while fscanf(k,"%c", &l) - OKn" );
- //fscanf(k,"%c",&l);
- if(l !=lettre[i-1])
- {
- lettre[i]= l;
- occurences[i]++;
- i++;
- }
- else
- {
- occurences[i-1]++;
- }
- }
- printf("Fin de boucle whilen" );
- for(i=0;lettre[i+1] != 0;i++)
- {
- //printf("Ecriture des caracteres dans nv-code.txtn" );
- fprintf(nv,"%d %d ",occurences[i+1],lettre[i+1]);
- }
- fclose(nv);
- printf("Fermeture nvn" );
- }
|
ps: j'ai écrit une fonction décoder pour être sur que ça marche, pour comparer le texte d'origine avec le texte codé puis décodé. Merci edit: je viens de remarquer que les backslash avant les "n" n'étaient pas retranscrits dans le code que je poste dans le forum donc, ce sera à vous de les mettre. Message édité par cybkiller le 28-11-2008 à 16:42:40
|