Mam problem... Otóż gdy zapisałem w Delphi 5 jakiś rekord do pliku, to nie odczytuje się on w Delphi 2005. Rozumiem, że w Delphi 2005 poszczególne typy zmiennych inaczej są zapisywane niż w Delphi 5. Nigdzie nie mogłem znaleźć odpowiedzi na to pytanie, więc piszę. Czy istnieje jakiś sposób na kompatybilność (tak jak było w Pascalu: smallint [Delphi] = integer [Pascal], wystarczyło podmienić...)? Czy może pamięć jest całkowicie inaczej zarządzana i nic mi już nie pomoże (a wtedy dużo stracę, bo nie będę mógł przekonwertować cennych danych do nowych wersji programu)?
- Rejestracja:około 19 lat
- Ostatnio:około 14 lat
0
TOptions = record
TerrainDetail: boolean;
resx: integer;
resy: integer;
fullscreen:boolean;
resbpp: integer;
resfilter: integer;
lowtex: boolean;
sfxvol:integer;
musvol:integer;
sett:integer;
sdevice:integer;
sbuffer:integer;
wsens:integer;
DDIK_Q:integer;
DDIK_W:integer;
DDIK_S:integer;
DDIK_A:integer;
DDIK_D:integer;
DDIK_Z:integer;
DDIK_X:integer;
DDIK_G:integer;
DDIK_P:integer;
DDIK_R:integer;
DDIK_TAB:integer;
DVK_SHIFT:integer;
DVK_F1:integer;
gammaramp:currency;
gore:byte;
waterfx:boolean;
highprior:boolean;
end;
Zajmuje to 120 bajtów w Delphi 5, 106 w Delphi 2005 (pisałem już, ale tak na "w razie czego")...
- Rejestracja:ponad 21 lat
- Ostatnio:ponad 15 lat
- Postów:3356
0
To na pewno wina użycia record zamiast packed record. Sprawdziłem na D7: jest dokładnie tak jak piszesz: record daje 120 bajtów, packed record daje 106.
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.