Grundsätzlich: Eine binäre Datei wird auch binär gelesen, damit man nicht bei der StringBearbeitung kaputt macht.
* gut, Delphi-Strings haben kein Problem mit einer #0 im String
* aber z.B. bei einer TStringList der TFile.ReadAllLines die Zeilenumbrüche
* und vor allem Konvertieurungen, bei der Behandlung der Datei mit einer "falschen" CodePage.
Deine Codes lesen definitiv
immer alles, ABER
* wegen dem "String" beim zweiten Code, ist natürlich der halbe String am Ende "leer".
string = hat seit Delphi 2009
zwei Bytes pro Char
* und weil du keine Fehlerprüfung hast, könnte auch weniger gelesen werden (hier an deinen Beispielen aber nicht, außer z.B. Dateisystem oder Datenträger sind kaputt)
-> Read und dessen Result prüfen, oder eben ReadBuffer
TStream / TMemoryStream, TFileStream, TStringStream
RawByteString
TBytes
TFile.ReadAllBytes
TFile.ReadAllText aber hier möglichst mit einer
ANSI- ASCII-CodePage arbeiten, weil wegen String/UnicodeString
es gab auch mal irgendwo eine CodePage ohne Umrechnung, wo #0-#255 1:1 umgesetzt werden, ohne Konvertierung
https://learn.microsoft.com/en-us/wi...ge-identifiers