При использовании компонентов выдающих пути файлов или каталогов, например TSaveDialog, невозможно воспользоваться результатом ,если в пути есть кириллица(русский текст, например каталог "Мои документы").
Как выйти из этой ситуации?

Модератор: Модераторы
function winux(Text: String = ''): String;
begin
{$IFDEF UNIX}
Result:= Text;
{$ENDIF}
{$IFDEF WINDOWS}
Result:= Utf8ToAnsi(Text);
{$ENDIF}
end;
...
procedure TMainForm.FormShow(Sender: TObject);
begin
LabelMess('Загружаем профиль: '+LastProfile);
LoadBasePathXML(Base, BaseMenuFile);
if not FileExists(Base.DatabaseName)
then
if Mess(
'Файл базы данных не найден. Возможно файл настроек еще не создан'+#13#13+
'Окрыть диалог поиска/создания файла Базы данных?',
MB_YESNOCANCEL + ICONWARNING) = IDYES
then begin
if OpenDialog.Execute
then Base.DatabaseName:= winux(OpenDialog.FileName); // < СЮДА ОБРАЩАЮ ВНИМАНИЕ!!!!
end;
...
procedure TForm1.Button1Click(Sender: TObject);
begin
If od.Execute Then
Begin
label1.Caption:=od.FileName;
memo1.Lines.LoadFromFile(UTF8ToSys(od.FileName));
end;
end;
dunin писал(а):...
Вопрос:
Чем можно ChDir заменить?
ChDir(Utf8ToAnsi(ExtractFileDir(SaveDialog.FileName)));
, а Utf8ToSys - так кроссплатформенееdunin писал(а):Utf8ToAnsi
MoveFile(PChar('123.TMP'), PChar(UTF8ToAnsi('Абра козябра.txt')));
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 237