Prob mit File lesen nach CBuilder Versionswechsel ?!



  • Moinsn,

    folgendes: habe da was entdeckt, und zwar beim Lesen einer binären Datei.

    int fHandle;
    fHandle = open( file.c_str(), O_BINARY |...
    

    dann lesen...

    So, jetzt gehts los. Die ersten 32 Byte der gelesenen Datei sind noch ok. Werden in eine struct(TFileHead) geholt und ausgewertet. Passt. Danach hole ich mir den Offset des ersten Zeichens nach diesen 32 Byte.

    fBuffer = (T_Info*) &FBinaryData[sizeof(TFileHead)];
    

    Und da kommt das Problem.
    Beim CBuilder 4 ist der Offset 0U, beim CBuilder 2007 ist er 256U 😮 😕
    Dementsprechend das gelesene Ergebnis. Beim 4er 👍 beim 2007er 👎
    Was hat sich da geändert? Code ist in beiden Fällen identisch( Lang lebe Copy&Paste 😉 )

    😕 grüssle 😕



  • Smitty schrieb:

    fBuffer = (T_Info*) &FBinaryData[sizeof(TFileHead)];
    

    Und da kommt das Problem.
    Beim CBuilder 4 ist der Offset 0U, beim CBuilder 2007 ist er 256U 😮 😕

    Wie genau kommst du an den Offset? ((char*) fBuffer) - FBinaryData (vorausgesetzt, daß FBinaryData vom Typ char ist)?



  • Ne is klar, unvollständiger Code. Keine Absicht. Hab das Prob aber wohl gefunden. Liegt wohl an der Datenausrichtung.
    Muss aber noch genau testen.

    grüssle 🙂

    Edit: Lag an der Datenausrichtung. Prob gelöst 😋


Anmelden zum Antworten