Was für Text ist in der Datei?
Unicode ist 2 Byte pro Zeichen, also sind in der Datei auch nur halbsoviele Dateien.
Delphi-Quellcode:
setlength(s, size div 2);
readbuffer(s[1], size and -2);
showmessage(s);
oder
Delphi-Quellcode:
setlength(s, size div 2);
readbuffer(s[1], Length(s) * 2);
showmessage(s);
aber besser ... denn irgendwann in ferner Zukunft wird
Unicode 4 Byte und dann stimmt die 2 nicht mehr
Delphi-Quellcode:
setlength(s, size div SizeOf(Char));
readbuffer(s[1], size and -SizeOf(Char));
showmessage(s);
oder
Delphi-Quellcode:
setlength(s, size div SizeOf(Char));
readbuffer(s[1], Length(s) * SizeOf(Char));
showmessage(s);
Und was so ewig dauert ... k.A., aber die Stringbehandlung ist seit D2009 eh voll schrottig.
Definier {$STRINGCHECKS OFF} und versuch es nochmal ... vielleicht bringt es was.