Ich soll eine Funktion erstellen die aus einem Intel-Hex Format die Daten im ASCII Format extrahiert, und entweder binär oder als ASCII Zeichen zurück gibt.
Hat jemand einen guten vorschlag wie man das lösen kann.
Danke
Ich soll eine Funktion erstellen die aus einem Intel-Hex Format die Daten im ASCII Format extrahiert, und entweder binär oder als ASCII Zeichen zurück gibt.
Hat jemand einen guten vorschlag wie man das lösen kann.
Danke
Wie sieht Intel-Hex genau aus?
MfG Peschmä
The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)
ich glaube es ist ein normaler HexCode denn ich als Binär oder ASCII Code verwandeln soll.
Mfg, elvin
Hexcode? Also einfach eine Binärdatei?
Eventuell guckst du mal hexdump an (auch möglich dass ich falsch verstanden hab was du eigentlich willst)
MfG Peschmä
The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)
ich verstehe die frage auch nicht so richtig.Zitat von helvin
1. möglichkeit: du möchtest eine binärdatei bitweise ausgeben
pseudocode:
bei unklarheiten einfach fragenCode:uchar c; uchar c2; int i; while(!EndOfFile()) { c = getNextChar(); for(i = 0; i < 8; i++) { c2 = (c >> (7 - i)) & 0x01; printf("%d", c2); } printf("\n"); }
2. möglichkeit
du hast eine binärdatei und weißt, daß diese einen programmcode für einen pentium enthält. ein pentium speichert seine werte (glaube ich) little endian ab, d.h. du müßtest den code in big endian konvertieren und dann bitweise ausgeben. (kann ich mir aber nicht vorstellen, weil man dazu erst die maschinenbefehle [jeweils mit unterschiedlicher länge] ausparsen müßte). ist das eine uni-, schul-, arbeits- oder sonstige aufgabe?
+++ this message is printed on 100% recycled electrons +++
Das ist Aufgabe fur die Fachhochschule
Geändert von helvin (07-03-2006 um 18:42 Uhr) Grund: falsche angabe
ich denke das ich es so machen soll, aber ich komme nicht drauf wie ich ganzen TEXT aus der Datei auslese und am Bildschirm zeige.Weil er zeigt mir jetzt nur die ERSTE zeile von den ganzen TEXT.
#include <stdio.h>
int main(void)
{
FILE * pFile;
char string [1024];
pFile = fopen ("hex.txt" , "r");
if (pFile == NULL) perror ("Error opening file");
else {
fgets (string , 1024 , pFile);
puts (string);
fclose (pFile);
}
return 0;
}
Kann mir jemand sagen wie ich das machen soll?
Geändert von helvin (09-03-2006 um 19:18 Uhr)
danach kann will ich den HEX-text als BINAER ausgeben.
versuchs mal mitCode:while(fgets(line, sizeof(line), file) != 0) { /* etwas mit den eingelesenen Daten machen */ } fclose(file);
Ich weiss aber nicht wie viele Zeilen mein TEXT hat, deswegwn will ich den ganzen text ZEILENWEISE ausgeben, und das faelt mir nicht ein.
nun, mit fgets() liest du eine Zeile des Textes und solange fgets() nicht 0 zurückgibt, gibts noch weitere Linien in der Datei...
ich habe das gemacht,
#include <stdio.h>
#include <string.h>
int main( int argc, char **argv )
{
// Parameter 1 des Aufrufs ist die Quelldatei
FILE *pFile = fopen( "hex.txt", "r" );
if (pFile == NULL) perror ("Error opening file");
//Zählvariable i für die Ausgabe
int i ;
char inhalt[1024];
while( fgets(inhalt, 1024, pFile) != NULL )
{
for ( i = 9; i <= (strlen(inhalt) - 4); i++) /*Funktion strlen gibt mir die Laenge
von der GANZEN Zeile zueruck*/
{
printf("%c", inhalt[i]);
}
printf("\n",inhalt[i]);
}
fclose( pFile );
return 0;
}
aber ich weis aber nicht wie ich die Ausgabe in einem Binaer Code und ASCII Code umwandle.
Fuer Binaer soll er so berechnen:
10 + 01 + 00 + 00 + 21 + 46 + 01 + 36 + 01 + 21 + 47 + 01 + 36 + 00 + 7E + FE + 09 + D2 + 19 + 01 = 3C0
Geändert von helvin (11-03-2006 um 13:58 Uhr)
Lesezeichen