Archiv verlassen und diese Seite im Standarddesign anzeigen : Intel - Hex Konverter
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
peschmae
06-03-2006, 18:37
Wie sieht Intel-Hex genau aus?
MfG Peschmä
ich glaube es ist ein normaler HexCode denn ich als Binär oder ASCII Code verwandeln soll.
Mfg, elvin
peschmae
06-03-2006, 19:15
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ä
BinEinGast
06-03-2006, 21:27
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 verstehe die frage auch nicht so richtig.
1. möglichkeit: du möchtest eine binärdatei bitweise ausgeben
pseudocode:
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");
}
bei unklarheiten einfach fragen
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?
Das ist Aufgabe fur die Fachhochschule
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?
danach kann will ich den HEX-text als BINAER ausgeben.
versuchs mal mit
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
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.