Как сказал Майкл, вы имеете дело с файлом в кодировке UTF-16, поэтому вам придется загружать и декодировать его вручную.Существуют различные WideString
-поддерживаемые TStringList
-подобные классы, плавающие в сети, или Borland имеет собственную реализацию в модуле WideStrings
, попробуйте использовать один из них вместо ввода-вывода из файла Pascal, например:
procedure TForm1.Button1Click(Sender: TObject);
var
SL : TWideStringList;
I: Integer;
s : string;
begin
SL := TWideStringList.Create;
try
SL.LoadFromFile('data.log');
Memo1.Lines.BeginUpdate;
try
for I := 0 to SL.Count-1 do
Memo1.Lines.Add(SL[I]);
finally
Memo1.Lines.EndUpdate;
end;
finally
SL.Free;
end;
end;
Или:
uses
.., WideStrings;
procedure TForm1.Button1Click(Sender: TObject);
var
SL : TWideStringList;
begin
SL := TWideStringList.Create;
try
SL.LoadFromFile('data.log');
Memo1.Lines.Assign(SL);
finally
SL.Free;
end;
end;
В качестве альтернативы, установите копию TNTWare или TMS, которые оба имеют компоненты с поддержкой Unicode.Тогда вы сможете просто LoadFromFile()
.log файл напрямую в любой компонент Unicode Memo, который вы выбрали.