Problem mit Ausgabe binärer Daten



  • Ich habe den hier im Forum neulich benutzen Code verwendet, um eine Datei zu öffnen und auszulesen.
    Ich lese binäre Daten, das heißt ich sehe die ASCII Zeichen, wenn ich diesen in einem Edit Fenster ausgebe. Wie kann ich sie in Dezimalschreibweise ausgeben? IntToStr läuft da nicht! 😞

    char byte[1];
    FILE *fp;
    fp = fopen("Datei.txt", "r");
    fread(&byte2, sizeof(byte),1,fp); 
    fclose(fp);
    Edit1->Text = byte;   // byte enthält jetzt "\x02" -> und soll 2 im Edit zeigen!
    

    Danke.



  • Hallo,

    Du hast ein Array of byte[1] angelegt. Das Zeichen hat den Index [0]. Also was soll die Adresse "&byte2" in fread sein?

    Gruß Rudi



  • Sorry, denk dir die 2 weg...habe beim Post die Zahlen weggenommen...naja, wollte es zumindest.



  • Wenn du da eine 2 in deinem Editfeld sehen willst solltest du nicht binär sondern textbasiert einlesen.
    Vielleicht solltest du die auch einmal die VCL-Dateiroutinen (z.Bsp. TFileStream) oder Standard C++ (z.Bsp. ifstream) ansehen. Die sind meiner Meinung nach einfacher zu verwenden.



  • Noch mal genau das Problem:
    Ich möchte binär gespeicherte Daten von der Festplatte einlesen und in Variablen abspeichern.

    [code]unsigned int Byte;
    char byte1[1];
    FILE *fp;
    fp = fopen("Daten.txt", "r");
    fread(&byte1, sizeof(byte1),1,fp);
    fclose(fp);
    Byte1 = StrToInt(byte1);
    code]

    Fragen sind also:
    1. In welcher Form kann ich die binären Daten in der Variablen abspeichern, so dass ich mit ihnen Rechnen und sie zeichnen kann?
    2. Wie kann ich den Pointer manuel auf eine bestimmte Stelle im Code setzen?

    Danke, Tobi



  • Byte1 = byte1[0];
    


  • Warum nicht einfach fgetc() verwenden? Dann sollte auch IntToStr() funktionieren.


Anmelden zum Antworten