Ich brauche einen Hex2Bin Converter der alle Hexzahlen aus einem File ausließt und sie in Binärzahlen umgewandelt entweder in ein File oder auf die Standardausgabe schreibt.Da ich keinen gefunden hab, hab ich selbst einen geschrieben, doch der möchte nciht so wie ich will. Der über Kommandozeile übergebene Filename wird nicht geöffnet sondern mysteriöserweise immer NULL. ich hab schon die gnze Zeit nach dem Bug gesucht und finde ihn nicht. Schaut euch bitte mal den Sourcecode an, hoffentlich findet ihr den Fehler.
Achso das ganze ist in C geschrieben.
LINK: http://bttec.org/homebenjamin/convert.c
mfg Benjamin
PS: Ich weiß der gesamte Code ist eher suboptimal, ist halt ein 10-Minutenprodukt.[/url]
Hex2Bin Converter Fehler
im Optionstring scheint nach dem "i" ein ":" zu fehlen
Gruß
gms
[edit]
vielleicht kann ich dir doch noch weiter behilflich sein:
auf der Suche nach zusätzlichen Fehlern bin ich auch gleich fündig geworden:
a) ein vergleich von "char" mit "char*" wird zu keinem vernüftigen Ergebnis führen:
wie z.B. hier:
b) wozu soll dieser Code gut sein ?
abgesehen, daß du hier auch mit "0" statt mit '0' vergleichst, wenn keine '0' in der Datei drinnen steht, hast du hier eine Endlosschleife
c) die zwei Ausgabeblöcke ( printf vs fprintf ) kannst du zusammenfassen, wenn du vorher ein
einfügst
d) filename kann NULL sein
[/edit]
Gruß
gms
[edit]
vielleicht kann ich dir doch noch weiter behilflich sein:
auf der Suche nach zusätzlichen Fehlern bin ich auch gleich fündig geworden:
a) ein vergleich von "char" mit "char*" wird zu keinem vernüftigen Ergebnis führen:
wie z.B. hier:
Code: Alles auswählen
if(c == "0") {fprintf(output,"0000");}
Code: Alles auswählen
while((c = fgetc(file)) != "0") {}
fseek(file,1, SEEK_CUR);
c) die zwei Ausgabeblöcke ( printf vs fprintf ) kannst du zusammenfassen, wenn du vorher ein
Code: Alles auswählen
if ( output == NULL ) output=stdout;
d) filename kann NULL sein
[/edit]
-
- Beiträge: 286
- Registriert: 20.10.2006 20:46:21
Den Fehler mit dem : hab ich mittlerweile auch entdeckt.
Dieser Code geht die Datei solange durch bis der Anfang einer hexadezimalen Zahl auftritt (also =x...).
Danke für den Tipp mit dem.
Danke für die Hilfe ich hoffe es geht jetzt.( ich hab lange nciht mehr in C geproggt muss jetzt wieder mal reinkommen.)
mfg Benjamin
Code: Alles auswählen
while((c = fgetc(file)) != "0") {}
fseek(file,1, SEEK_CUR);
Danke für den Tipp mit dem
Code: Alles auswählen
if ( output == NULL ) output=stdout;
Danke für die Hilfe ich hoffe es geht jetzt.( ich hab lange nciht mehr in C geproggt muss jetzt wieder mal reinkommen.)
mfg Benjamin
unter der Annahme, daß du folgendes meinst:Gottvonallem hat geschrieben:Dieser Code geht die Datei solange durch bis der Anfang einer hexadezimalen Zahl auftritt (also =x...).Code: Alles auswählen
while((c = fgetc(file)) != "0") {} fseek(file,1, SEEK_CUR);
Code: Alles auswählen
while((c = fgetc(file)) != '0') {}
fseek(file,1, SEEK_CUR);
Code: Alles auswählen
01234
-
- Beiträge: 286
- Registriert: 20.10.2006 20:46:21