Binäre Dateien auslesen



  • Hey Leute 🙂

    Ich code jetzt schon eine ganze weile mit C/C++ aber das Thema binäre Dateien war für mich nie richtig relevant und von daher habe ich damit noch keine Erfahrung. Ich habe mir dazu schon ein paar Dinge durchgelesen aber das Verständnis will noch nicht wirklich einsetzen.

    Also um erstmal ganz simpel zu beginen öffne ich die Datei wiefolgt:

    ifstream dff;
    dff.open("test.dff", ios::binary);
    

    Klappt auch gut.
    Im Header habe ich dann den ersten Wert so ausgelesen und ausgegeben (data ist vom typ DWORD):

    dff.read(reinterpret_cast<char*>(&data), sizeof(DWORD));
    cout << data << endl;
    

    Hat von sich auch gut geklappt aber mir fehlt da irgendwie trotzdem das verständnis dahinter wenn es etwas größere Files werden. Ich wollte mich mal an den *.dff files von GTA probieren und habe dazu auch folgende Übersicht gefunden:
    http://www.gtamodding.com/index.php?title=RenderWare_binary_stream_file

    Wenn man dort unter Common File Structures schaut, und dann auf den jeweiligen Punkt klickt, z.B. ganz oben Clump, dann wird angezeigt, 3x 4Byte mit DWORD.

    Nur wie arbeite ich das nun durch, damit ich z.B. gezielt die Geometry List Werte bekomme? Ich hoffe mir kann das mal jemand erklären/zeigen - mit Beispielen lernt es sich meist noch am besten.

    Also schonmal danke und ich hoffe ihr versteht alles, ansonsten fragen^^

    MfG 🙂


  • Mod

    edit: Zu schnell gelesen und Anfängerfehler gesehen, die gar nicht da waren. Hier stand daher Unfug.



  • SeppJ schrieb:

    ..

    Er liest doch richtig ein.
    @Chris Benoit!
    Was gibt es da nicht zu verstehen? Der Header besteht nun mal aus ganz viel Einzelkram, wenn du das alles wissen möchtest, musst du das auch alles mit auslesen. Wenn dich bestimmte zusammenhängende Informationen nicht interessieren, kannst du natürlich auch ganze Stücke ignorieren, aber grundsätzlich ist das alles nicht schwieriger als das, was du jetzt machst. Wo genau liegt dein Problem?



  • Naja, wie kann ich z.B. gleich bei dem Geometrieteil anfangen bzw. woher weiss ich wie groß dieser ist? Das is ja von Datei zu Datei unterschiedlich 😕



  • Indem du alles bis dorthin einliest.


Anmelden zum Antworten