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

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

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

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

Сообщение Александр Яшин » 07.02.2010 20:22:52

Не удается загрузить в 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
Александр Яшин
новенький
 
Сообщения: 67
Зарегистрирован: 21.11.2009 09:31:01

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

Сообщение Mr.Smart » 07.02.2010 21:06:05

Не обрамляйте функцию UTF8ToSys в дефайны. Данная фукция является кроссплатформенной и работает не только в Виндоус, но и в Линукс :wink:
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 54

Рейтинг@Mail.ru