Wie lese ich den Inhalt der Datei in eine Zeichenfolge in Delphi XE

8

Ich migriere meine Anwendung von Delphi 2007 nach Delphi xe, aber ich habe Probleme mit einer Prozedur, die eine Datei liest (ascii) und den Inhalt in einer Zeichenfolge speichert

das ist der Code, der in Delphi 2007 funktioniert

%Vor%

aber wenn dieser Code in Delphi XE ausgeführt wird, sind die Ergebnisse nur Symbole wie '????????', ich weiß, welches Delphi xe Unicode ist, also ändere ich diese Zeilen

%Vor%

bis

%Vor%

speichert den Inhalt der Datei in der Unicode-Zeichenfolge, aber das Ergebnis ist das gleiche.

how i can fix this procedure to read the content of this file?

    
DelphiNewbie 23.05.2011, 23:45
quelle

4 Antworten

24

Sie Code funktioniert nicht, weil Sie den Inhalt der Datei mit einem Unicode-String als Puffer lesen, so dass Sie nur Bytes aus dem internen Puffer des TFileStream in die Unicode-Zeichenfolge verschieben, die Codierung zu ignorieren.

Sie können Ihre Prozedur leicht korrigieren, indem Sie nur den Ergebnistyp in AnsiString

ändern %Vor%

Aber ich werde Ihnen empfehlen, dass Sie stattdessen die Funktion TFile.ReadAllText verwenden, die in einem Eine einzelne Codezeile liest den Inhalt einer Datei und behandelt auch die Kodierung der Datei.

    
RRUZ 23.05.2011, 23:49
quelle
8

Sie sollten die Codierung berücksichtigen, zum Beispiel:

%Vor%     
kludg 24.05.2011 00:05
quelle
8

Sie können dies mit einer Codezeile mithilfe der ReadAllText-Funktion erreichen. So:

%Vor%

Es erkennt ANSI-, Unicode- und Binärdateien korrekt. (Jetzt sehe ich RRuz bereits gleich empfohlen.)

    
Sahara 27.02.2014 14:58
quelle
6

Ich empfehle, eine TStringList zu verwenden, um den Inhalt der Datei zu laden und dann das Ergebnis auf variable.Text zu setzen, zum Beispiel:

%Vor%

Auf diese Weise müssen Sie sich um nichts kümmern, es wird rückwärts und zukünftig kompatibel sein.

BEARBEITEN: Wenn Sie von einem Nachkommen von TStream laden müssen, ersetzen Sie LoadFromFile durch LoadFromStream.

    
ComputerSaysNo 24.05.2011 00:10
quelle

Tags und Links