Hallo,
ich stelle grade von Delphi7 auf Delphi9. Dabei gibt es jetzt (wie erwartet) Probleme mit
Unicode bzw. Widestring.
einfaches Codebeispiel:
Delphi-Quellcode:
TYPE Datenrecord = RECORD
Name : STRING;
Jahr : INTEGER;
END;
VAR AlleDaten : ARRAY [1..MaxDaten] OF Datenrecord;
Das Sichern/Laden geht standardmäßig über eine Datei
VAR Datenfile : FILE OF Datenrecord
die konventionell-sequentiell gelesen bzw. geschrieben wird
Unter Delphi9 wwerden die Strings allerdings nicht mehr in fixer Länge abgespeichert, sondern in ihrer tatsächlichen Länge, was dazu führt, dass die Dateigröße sich laufend ändert, und die Hintereinander-Schachtelung innerhalb des Arrays völlig durcheinander kommt!
Unter Delphi7 war String=Shortstring (wenn man ihn nicht umdefiniert hat), jetzt ist es zwingend Widestring. Da auch Chinesen Namen haben, sollte man den Widestring nutzen, also STRING lassen (sonst könnte man die Definition auf STRING[255] o.ä. ändern und hätte keine Probleme).
Wie löse ich das, ohne Texte und Daten voneinander trennen zu müssen? Eine Trennung stelle ich mir so vor, dass die Namen in einer TStringlist definiert werden, und auch mit deren Methoden gelesen und gesichert werden. Aber wie gesagt, möchte ich diese Trennung nicht machen..
Vielleicht isses ganz einfach, und ich steh nur auf dem Schlauch?
Besten Dank schonmal vorab: Gagamba