Zitat von
DJ-SPM:
Das ist genau das, was ich gesucht habe! Nur ich hab mal eine Frage. Wo ist der Unterschied zwischen einem Record und einem packed Record.
Hallo
nur bei einem packed record kannst du dich drauf verlassen, dass die Daten dicht an dicht gepackt sind, z.B. bei
Delphi-Quellcode:
test = record
int1 : integer;
byte1 : byte;
int2 : integer;
end;
wird für byte1 der gleiche Speicherplatz reserviert wie für int1 und int2, damit die Daten im 32bit-Speicher ausgerichtet sind (bei 64bit wird an 64-bit-Grenzen ausgerichtet). Das gibt häufig Ärger, wenn du den Record mit anderen Programmen austauschst oder in eine Datenbank schreiben willst. Bei "packed" nimmt das byte auch nur ein byte ein.
Im Zweifel kannst/musst du das mit SizeOf prüfen: test ist 12 byte gross, als packed 9 byte.
Gruss Reinhard