Entwickler-Ecke

Dateizugriff - Binärdateien


Janus - Sa 31.01.04 14:09
Titel: Binärdateien
Hallo zusammen, ich bin ein ziemlicher Delphineuling und habe folgendes Problem: Warum lässt sich folgender (Pseudo) Code nicht komillieren?

type TLevel = class
speedBat: Single;
cBall: Byte;
end;

lvl: TLevel;
lvl := TLevel.Create;

iBytesWritten: Cardinal;
FileWrite(hFile,Pointer(lvl),sizeof(TLevel),iBytesWritten,nil);

sizeof(TLevel) gibt natürlich 4 zurück (zumindest auf einem 32-Bit system). Wie kann ich erreichen, dass ich die grösse der Klasse bekomme? Wieso lässt sich der lvl mit Pointer(lvl) nicht in einen generischen Pointer casten?

in c würde das so aussehen:

FileWrite(hFile,(void*)lvl,sizeof(TLevel),iBytesWritten,0x00);

Ich hoffe, es kann mir jemand helfen!
Einen Lieben Gruss Janus


MSCH - Sa 31.01.04 18:15

tja, wenn so einfach wäre, eine Klasse zu sichern. Warum machst du nicht ein Record draus? Also statt Class Record. Dann funktionierts auch mit dem Sichern. Ansonsten müßte deine Klasse routinen zum Berechnen und Sichern seiner Daten erstmal definieren. EIne Klasse ist nichts weiter als ein Zeiger. Woher soll dieser wissen, wie gross seine Daten sind?

grez
msch