И снова OpenDialog + текстовый файл с кириллицей

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
Александр Яшин
новенький
Сообщения: 67
Зарегистрирован: 21.11.2009 08:31:01

И снова OpenDialog + текстовый файл с кириллицей

Сообщение Александр Яшин »

Не удается загрузить в TMemo текстовый файл с русским текстом в Linux, если его открывать TOpenDialog.
Вот код:

Код: Выделить всё

procedure TForm1.LoadClick(Sender: TObject);
var
  tfile: TStringList;
  str: string;
  fname: string;
begin
  tfile:= TStringList.Create;
  if OpenDialog1.Execute
  then fname:= OpenDialog1.FileName;
  {$IFDEF WINDOWS}
    fname:= UTF8ToSys(fname);
  {$ENDIF}
  tfile.LoadFromFile(fname);
  str:= tfile.Text;
  {$IFDEF WINDOWS}
    str:= AnsiToUTF8(str);
  {$ENDIF}
  Memo1.Lines.Add(str);
  tfile.Free;
  Memo1.SetFocus;
  Memo1.SelStart:= 0;
end;


Причем если указать имя файла в виде строковой константы, то файл загружается:

Код: Выделить всё

 tfile.LoadFromFile('Имя файла');


В Windows все работает.

Использую Mandriva 2009
Mr.Smart
долгожитель
Сообщения: 1796
Зарегистрирован: 29.03.2008 00:01:11
Откуда: из леса!

Сообщение Mr.Smart »

Не обрамляйте функцию UTF8ToSys в дефайны. Данная фукция является кроссплатформенной и работает не только в Виндоус, но и в Линукс :wink:
Ответить