004
30.03.2004, 12:47 Uhr
kronos
Quotenfisch (Operator)
|
mal ganz unbedarf dahingecodet:
C++: |
#include <stdio.h> #define OUTPUT stdout
main(int args, char**arg) { if(args<3) { printf("Anwendung: %s Datei1 Datei2",*arg); return -1; } else { FILE *file1, *file2; if((file1=fopen(arg[1],"rb"))==NULL) { printf("Fehler beim Öffnen von %s!",arg[1]); return -1; } if((file2=fopen(arg[2],"rb"))==NULL) { printf("Fehler beim Öffnen von %s!",arg[2]); return -1; }
fprintf(OUTPUT,"Vergleich von %s und %s:\n",arg[1],arg[2]); { int c1=fgetc(file1),c2=fgetc(file2); unsigned long n=0; while(c1>0||c2>0) { if(c1!=c2) { unsigned long l; for(l=0;c1!=c2;++l) { c1=fgetc(file1); c2=fgetc(file2); } fprintf(OUTPUT,"Abweichung bei Byte %i, Länge %i:\n",n,l); fsetpos(file1,(fpos_t*)&n); fsetpos(file2,(fpos_t*)&n); for(;l--;++n) { c1=fgetc(file1); c2=fgetc(file2); fprintf(OUTPUT,c1<0?"-- ":"%02x ",c1); fprintf(OUTPUT,c2<0?"--\n":"%02x\n",c2); } } else ++n; c1=fgetc(file1); c2=fgetc(file2); } } fprintf(OUTPUT,"Vergleichen beendet.\n"); } }
|
falls ein file zu ende ist, gilt das als abweichung und es wird "--" statt den bytes angezeigt, hoffe das ist in deinem sinne. oh, mir fällt gerade ein das das programm durch die int-größe beschränkt ist, wird also nix mit 100mb...
Bearbeitung: |
smilies vernichtet
|
[edit]Flos Beanstandungen behoben[/cpp] -- main($)??<-$<='?'>>2?main($-!!putchar( (("$;99M?GD??(??/x0d??/a:???;a"+'?'/4) ??($??)+'?'/3-2-1+$%2)??''?')):'?';??> Dieser Post wurde am 30.03.2004 um 13:14 Uhr von kronos editiert. |