double speichern



  • Hallo,

    ich benutze LCC und habe folgenden Code:

    DWORD dwNumberOfBytes;
    double  MarginValue = 1.5;
    if(WriteFile(hFile,(LPCVOID)&MarginValue;,8,&dwNumberOfBytes,NULL)){
        return(TRUE);
    }
    return(FALSE);
    

    Das Ergebnis in der Datei sieht Hexadezimal dann so aus:
    0x00 0x5A 0x5A 0xFA 0xFF 0x00 0x00 0x00.
    Wenn ich mit Visual Basic das selbe mache:

    Dim MarginValue As Double
    MarginValue = 1.5
    Put #FileNumber, , MarginValue
    

    Das Ergebnis in Hexadezimal sieht so aus:
    0x00 0x00 0x00 0x00 0x00 0x00 0xF8 0x3F

    Weis jemand wieso die Zahlen so unterschiedlich abgespeichet werden?

    Vielen Dank schon mal

    Gruß ube



  • ach da haben alle hersteller so ihre eigenen vorstellungen und meinen, dass das eigene das beste sei... sieht man ja auch bei den browsern und ihren object-modellen (auch wenn das jetzt nichts mit C zu tun hat) in diesem fall musst du in VB einen string einlesen und dann die zeichen tauschen (sowas in der art) und dann die funktion CVD benutzen (gibts die unter VB noch?? ich kenn die von QB her noch)

    cu todo



  • Hallo todo,

    vielen Dank für die Info. Ich hatte eignelich gedacht, daß das "Format" durch den Prozessor vorgegeben währ.

    Gruß ube



  • Sollte es jemand interessieren: Das Problem lässt sich mit #pragma pack(1) lösen.

    Gruß

    ube


Anmelden zum Antworten