Comment lire le contenu du fichier dans une chaîne de caractères dans delphi XE

Je suis migrer mon application à partir de delphi 2007 pour delphi xe, mais j'ai eu des problèmes avec une procédure de lecture d'un fichier (ascii) et stocker le contenu dans une chaîne

c'est le code qui travaillent sur ok dans delphi 2007

function LoadFileToStr(const FileName: TFileName): String;
var
  FileStream : TFileStream;
begin
  FileStream:= TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite);
    try
     if FileStream.Size>0 then
     begin
      SetLength(Result, FileStream.Size);
      FileStream.Read(Pointer(Result)^, FileStream.Size);
     end;
    finally
     FileStream.Free;
    end;
end;

mais quand exécuter ce code en delphi XE le résultat sont des symboles comme '????????', je sais qui delphi xe est unicode j'ai donc modifier ces lignes

      SetLength(Result, FileStream.Size);
      FileStream.Read(Pointer(Result)^, FileStream.Size);

à

      SetLength(Result, FileStream.Size*2);
      FileStream.Read(Pointer(Result)^, FileStream.Size);

pour stocker le contenu du fichier dans la chaîne unicode, mais le résultat est le même.

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

Soyez prudent avec TStringList, parce que si le "texte" fichier contient en quelque sorte ASCII NUL (0x00) caractères, l'analyseur s'arrête et vous vous retrouvez avec moins de lignes que de réellement dans le fichier.

OriginalL'auteur DelphiNewbie | 2011-05-23