Hallo und Willkommen in der
DP ,
ich denke, das Hauptproblem sind die Strings. Ein String ist in Delphi(2 - 2007) ein AnsiString, in neueren Versionen ein
Unicode-String. AnsiStrings sind intern nur erst einmal ein Zeiger, also 4 Byte groß. Speicherst Du diesen und lädst ihn wieder, ist dieser Zeiger ungültig bzw. zeigt ganz woanders hin. Um das zu umgehen, solltest Du ShortStrings verwenden, diese sind allerdings auf 256 Zeichen begrenzt. Brauchst Du mehr, musst Du wohl auf statische Char-Arrays ausweichen.