Необходимо загрузить текстовый файл в кодировке Windows 1251 в Memo.
Метод Memo1.Lines.LoadFromFile естественно не работает.
Можно конечно перекодировать файл после открытия, но может быть есть какой-то более изящный способ?
Модератор: Модераторы
var
ls: TStringList;
begin
ls:=TStringList.Create;
ls.LoadFromFile('filename');
Memo1.Lines.Text:=AnsiToUtf8(ls.Text);
ls.Free;
end;
var
s:string;
f:text;
ch:char;
begin
s:='';
System.Assign(f,'text.txt');
Reset(f);
while not EOF(f) do
begin
read(f,ch);
s:=s+ch;
end;
Memo1.Text:=AnsiToUtf8(s);
ls.LoadFromFile('filename');
Ism писал(а):передавать в Memo из StringList построчно
unit JcfStringUtils;
{(*}
(*------------------------------------------------------------------------------
Delphi Code formatter source code
The Original Code is JcfStringUtils, released October 2008.
The Initial Developer of the Original Code is Paul Ishenin
Portions created by Paul Ishenin are Copyright (C) 1999-2008 Paul Ishenin
...
function FileToString(const FileName: string): AnsiString;
var
S: TStream;
begin
S := nil;
try
S := TFileStream.Create(FileName, fmOpenRead or fmShareDenyNone);
SetLength(Result, S.Size);
S.Read(PAnsiChar(Result)^, S.Size);
finally
S.Free;
end;
end;
procedure StringToFile(const FileName: string; const Contents: AnsiString);
var
S: TStream;
begin
S := nil;
try
S := TFileStream.Create(FileName, fmCreate);
S.Write(PAnsiChar(Contents)^, Length(Contents));
finally
S.Free;
end;
end;
Str := TStringList.Create;
Str.LoadFromFile(MyFile);
Memo.Clear;
Memo.Lines.Text := cp1251ToUTF8(Str.Text);
Str.Free;
Nikmedber писал(а): Ругается на cp1251ToUTF8, unit1.pas(148,19) Error: Identifier not found "cp1251ToUTF8"
Сейчас этот форум просматривают: Google [Bot] и гости: 6