Anzeige:
Ergebnis 1 bis 12 von 12

Thema: Intel - Hex Konverter

  1. #1
    Registrierter Benutzer
    Registriert seit
    23.02.2006
    Beiträge
    17

    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

  2. #2
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    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)

  3. #3
    Registrierter Benutzer
    Registriert seit
    23.02.2006
    Beiträge
    17
    ich glaube es ist ein normaler HexCode denn ich als Binär oder ASCII Code verwandeln soll.

    Mfg, elvin

  4. #4
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    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)

  5. #5
    Registrierter Benutzer
    Registriert seit
    30.06.2005
    Ort
    Darmstadt
    Beiträge
    59
    Zitat Zitat von helvin
    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:
    Code:
    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?
    +++ this message is printed on 100% recycled electrons +++

  6. #6
    Registrierter Benutzer
    Registriert seit
    23.02.2006
    Beiträge
    17
    Das ist Aufgabe fur die Fachhochschule
    Geändert von helvin (07-03-2006 um 19:42 Uhr) Grund: falsche angabe

  7. #7
    Registrierter Benutzer
    Registriert seit
    23.02.2006
    Beiträge
    17
    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 20:18 Uhr)

  8. #8
    Registrierter Benutzer
    Registriert seit
    23.02.2006
    Beiträge
    17
    danach kann will ich den HEX-text als BINAER ausgeben.

  9. #9
    Registrierter Benutzer Avatar von jeebee
    Registriert seit
    01.01.2005
    Ort
    Bern || Zürich
    Beiträge
    540
    versuchs mal mit
    Code:
    while(fgets(line, sizeof(line), file) != 0) {
        /* etwas mit den eingelesenen Daten machen */
    }
    fclose(file);

  10. #10
    Registrierter Benutzer
    Registriert seit
    23.02.2006
    Beiträge
    17
    Ich weiss aber nicht wie viele Zeilen mein TEXT hat, deswegwn will ich den ganzen text ZEILENWEISE ausgeben, und das faelt mir nicht ein.

  11. #11
    Registrierter Benutzer Avatar von jeebee
    Registriert seit
    01.01.2005
    Ort
    Bern || Zürich
    Beiträge
    540
    nun, mit fgets() liest du eine Zeile des Textes und solange fgets() nicht 0 zurückgibt, gibts noch weitere Linien in der Datei...

  12. #12
    Registrierter Benutzer
    Registriert seit
    23.02.2006
    Beiträge
    17
    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 14:58 Uhr)

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •