我正在將我的應用程序從delphi 2007遷移到delphi xe,但我有一個讀取文件(ascii)並將內容存儲在字符串如何讀取文件的內容到一個字符串在德爾福XE
這是一個好的工作在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;
但是當德爾福XE執行此代碼的結果就像是「????????」符號,我知道德爾福XE代碼是unicode所以我改變這些行
SetLength(Result, FileStream.Size);
FileStream.Read(Pointer(Result)^, FileStream.Size);
到
SetLength(Result, FileStream.Size*2);
FileStream.Read(Pointer(Result)^, FileStream.Size);
到文件的內容存儲在unicode字符串,但結果是一樣的。
how i can fix this procedure to read the content of this file?
小心TStringList,因爲如果'文本'文件以某種方式包含ASCII NUL(0x00)字符,分析器將停止並且最終的文件行數少於實際文件。 – 2012-11-23 16:15:41