#include #include int rempcar(char*nom,char*car,int *ln) { FILE * f; int i=0; char c; int x=1; int j=0; int cc=1; if((f=fopen(nom,"r"))==NULL) { printf("Erreur lors de l'ouverture du fichier.\n"); exit(0); } else { while(i<384) { if((c=fgetc(f))!=EOF) car[i]=c; else { car[i]=0x00; cc=0; ln=j; } if(j==15 && cc) { x++; j=-1; } i++; j++; } fclose(f); return x; } } int main(int argc, char *argv[]) { FILE* f; int nbc=0,continu=1,i=0,x=0,totalchar=0; int zone1=0; char c; unsigned char car[384]; char *nom; int ligne=0; int ln=0; nbc=strlen(argv[1]); nom=(char*)malloc(nbc+1); strcpy(nom,argv[1]); if((f=fopen(nom,"r"))==NULL) // si erreur lors de l'ouverture du fichier { printf("Erreur lors de l'ouverture du fichier.\n"); exit(0); } else // sinon on fait le programme { ligne=rempcar(nom,car,&ln); do { printf("%05X\t",zone1); zone1+=16; i=0; while(i<16) { if(i==8) printf(" "); if(car[x*16+i]==0x00 && ligne==1 && i>=ln) printf(" "); else printf("%02X ",car[x*16+i]); i++; } i=0; printf("\t"); while(i<16) { if(car[x*16+i]>=30 && car[x*16+i]<=127) printf("%c",car[x*16+i]); else if(car[x*16+i]==0x00 && ligne==1 && i>=ln) { printf(" "); i=17; } else printf("."); i++; } ligne--; if(x==23 || ligne<1) { printf("\n"); continu=0; } else printf("\n"); x++; }while(continu); } fclose(f); return 0; }