Dennoch nimm
PAnsiChar und AnsiString.
String/PChar hat seit Delphi 2009 zwei Byte pro Zeichen und in deinen Dateien ist es aber nur mit 1 Byte pro Zeichen gespeichert.
Und was ist die "entgültige" Typumandlung?
PS: Bezüglich der Unicodeumsellung gibt es zahlreiche Threads und Tutorials.
Grundsätzlich kann man sagen, daß es deine eigene Schuld war, daß jetzt nichts mehr läuft, denn man sollte niemals dynamische Typen binär speichern/übertragen, sonsdern ausschließlich generische Typen, welche unveränderlich sind.
Das fing bei
Unicode an, wo tring, Char und PChar sich veränderten und geht nun mit 64 Bit weiter.