HEX CONVERTER



  • Erstmal schönen:

    #include <stdio.h>
    #include <string.h>
    
    int main( )
    {
       int a;
       char *hex = "2143E2312FFE21006700432";
    

    Bist Du sicher, dass Du das brauchst? Du liest doch aus einer Datei.

    char tmp[3] = {0, 0, 0};
       char *ptr = hex;
       int value;
    
       printf("1: Binaer Ausgabe\n");
       printf("2: ASCII Ausgabe\n");
       scanf("%d",&a);
    
    // Parameter 1 des Aufrufs ist die Quelldatei
    

    Das ist ein C++-Kommentar...

    FILE *pFile = fopen( "hex.txt", "r" ); //Einlesen der Text Datei
       if (pFile == NULL) perror ("Error opening file");
    
    //Zählvariable i für die Ausgabe
       int i;
       char inhalt[1024];
    
       switch(a)
       {
       case 1:
          while( fgets(inhalt, 1024, pFile) != NULL )
    

    Wenn die Zeilen länger als 1024 Zeichen sind, ist inhalt eventuell nicht 0-terminiert, und das strlen unten geht schief.

    {
             for ( i = 9; i <= (strlen(inhalt) - 4); i++)
             {
                printf("%c", inhalt[i]);
             }
             printf("\n",inhalt[i]);
    

    Was soll hier das "inhalt[i]" nochmal? Copy-und-Paste-Problem, denke ich 😉

    }
          fclose( pFile );
    

    Du schließt die Datei nur, wenn der Benutzer eine 1 eingegeben hat. Nicht tödlich, aber unsauber.

    break;
       case 2:
          while (*ptr)
          {
             tmp[0] = *ptr++;
             tmp[1] = *ptr++;
             sscanf( tmp, "%X ", &value );
             printf( "%d\n ", value );
          }
    

    Im Prinzip ja nicht schlecht, nur gibst Du hier den Inhalt von hex aus, nicht den Deiner Datei. Willst Du das???

    break;
       }
       return 0;
    }
    


  • In der Text Datei befindet sich ein HEX Text. Diesen Text will ich in ASCII Code und in Binaer Code umwandeln, aber der Problem ist das ich nicht den Ganzen Text umwandele, sonder nur den gegbenen "text".
    Wie kann ich auf den Ganzen Text zugreifen ? "(hex.txt)", damit ich die Ganze Text Datei umwandeln kann?



  • C_Anfaenger80 schrieb:

    In der Text Datei befindet sich ein HEX Text. Diesen Text will ich in ASCII Code und in Binaer Code umwandeln, aber der Problem ist das ich nicht den Ganzen Text umwandele, sonder nur den gegbenen "text".
    Wie kann ich auf den Ganzen Text zugreifen ? "(hex.txt)", damit ich die Ganze Text Datei umwandeln kann?

    Vorab: Dein Programm werde ich nicht für Dich schreiben, das musst Du schon selbst machen... 😉
    Du müsstest das, was Du nach Eingabe einer 1 machst, mit dem kombinieren, was nach Eingabe einer 2 passiert. Wenn Du die Schleife zum Lesen der einzelnen Zeilen aus der Datei statt in den "case 1" außen um den switch legst, bist Du schon ein ganzes Stück weiter. Und dann solltest Du im "case 2" ptr auf die richtigen Daten zeigen lassen - den "char *hex" schmeiss' mal 'raus!



  • Danke für den Tip. Ich habe den Programm so bis jetzt fast fertig, mir fehlt nur noch die umwandlung in Binär Code, den Ascii umwandlung habe ich schon. Fals jemand einen guten Tip hat, Bitte sagen.
    Mfg,
    Elvin


Anmelden zum Antworten