UGrohne: Ich dachte nicht an ein array of String sondern eher an ein array of was anderes (statt array of String würde man in den meisten Fällen eine TStringList nehmen).
Bei einem array of Integer wäre eine binäre Datei extrem viel eifacher zu implementieren, viel schneller und die Dateigrösse viel kleiner. Ich hätte vielleicht meine Aussage begründen sollen
Eine XML-Datei ist dafür platformunabhängig (Endianness) und Human-Readable. Allerdings wäre mir persönlich der Aufwand zu gross, die XML-Daten wieder in ein array of sowieso zu bringen. Auch wenn du einen Parser hättest müsstest du vermutlich einige für einen Anfänger nicht so simpe Zeilen coden, um das geparste wieder in das array zu bringen. Das ganze wäre auch mit einem grösseren Memory-Aufwand verbunden. Ausserdem muss man sich etwas mit der Materie beschäftigen (utf-8, Speichern von Daten via Parameter vs. nested Tags).
Kurz: XML ist ein Luxus und ist mit höherem Speicher-, Geschwindigkeit- und Entwicklungsaufwand verbunden. In der Theorie ist es ganz nett, in einigen praktischen Fällen (kleine private Projekte) lohnt es sich aber einfach nicht.
alzaimar: Yep, was aber noch wichtig ist: "TUserType" darf keine Variablen enthalten, die eine "Finalization" brauchen. Das heisst: TUserType darf weder Strings noch weitere dynamische Arrays beinhalten (sonst wird lediglich der Pointer zu den Stringdaten/Arraydaten gespeichert, die nach dem Laden keine Gültigkeit mehr hätten).