Ja, das merke ich gerade auch. Da fehlt mir eben das Basis-Wissen zur Entwicklung der unterschiedlichen Datentypen, sorry..
Mach dir nichts draus ... das haben die Meisten falsch gemacht, bzw. nicht gewusst/beachtet.
Wobei es auch anders kommen kann.
Bei 64 Bit war mal der Integer/Cardinal veränderlich und nun hat man den einfach eingefroren und einen neuen Typen erfunden.
Das gibt jetzt also beim Speichern/Laden/Übertragen weniger Problemem aber dafür dann im Programm, weil ganz Viele zwischen Pointer und Integer gecastet haben (was eigentlich auch gepaßt hätte), aber nun eben Datenverlust mit sich bringt, weil vom Pointer die Hälfte verloren geht.
PS: Ich versuche hier grade ein Projekt "eigentlich" auf 64 Bit zu portieren, aber was darin alles gemacht wurde ... da wird einem Schlecht.
z.B. wurden erstmal alle Warnungen deaktiviert. OK, die Meisten Warnungen sind nur String<>AnsiString-Warnungen, wo Delphi es aber automatisch npasst, aber dazwischen waren auch welche, wo Delphi nichts anpassen konnte. PChar<>PAnsiChar und dann wundert man sich, daß Einiges nicht geht
Also immer schön auf den Compiler hören.
Nja, einfacher hättest du es mit TReader/TWriter gehabt.
Das beachtet selbst das Format und speichert es sogar in der Datei mit ab, so daß man die Datei auch noch auslesen könnte, selbst wenn etwas nicht paßt.
Das kennst du z.B. von der
DFM und wenn es gewisse Komponenten oder Property nicht mehr gibt.