Путь кириллицей

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

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

Ответить
Аватара пользователя
BadBoyAlex
постоялец
Сообщения: 119
Зарегистрирован: 08.06.2010 12:42:23
Откуда: Россия, Белгород
Контактная информация:

Путь кириллицей

Сообщение BadBoyAlex »

Здравствуйте, уважаемые форумчане!
При работе программы возникает ситуация, когда я должен считать путь из реестра и скопировать, удалить и выполнить какие-либо операции с файлом. Проблема в том, что у не6которых пользователей этот путь на кириллице. Если с Делфи нет никаких проблем (она спокойно прочитает, выполнит операцию), то с Лазарусом настоящая жо**... Он выводит ошибку, а при выводе пути выдаёт ???? вместо русских букв. Как это излечить?
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

SysToUTF8/UTF8ToSys...
В крайнем случае подобрать функции-конвертеры вручную.
Аватара пользователя
BadBoyAlex
постоялец
Сообщения: 119
Зарегистрирован: 08.06.2010 12:42:23
Откуда: Россия, Белгород
Контактная информация:

Сообщение BadBoyAlex »

Лекс Айрин писал(а):SysToUTF8/UTF8ToSys...
В крайнем случае подобрать функции-конвертеры вручную.

Неужели нет стандартной функции? Не хочется как-то 1000 строк кода переписывать.
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

BadBoyAlex,что есть стандартная функция?
Если присутствующая как в дельфи, так и в Лазарусе, то проще использовать условную компиляцию.

А если что-то иное, то указанный функционал является для Лазаруса стандартным.
Аватара пользователя
Sharfik
энтузиаст
Сообщения: 839
Зарегистрирован: 20.07.2013 01:04:30

Сообщение Sharfik »

BadBoyAlex писал(а):Здравствуйте, уважаемые форумчане!
При работе программы возникает ситуация, когда я должен считать путь из реестра и скопировать, удалить и выполнить какие-либо операции с файлом. Проблема в том, что у не6которых пользователей этот путь на кириллице. Если с Делфи нет никаких проблем (она спокойно прочитает, выполнит операцию), то с Лазарусом настоящая жо**... Он выводит ошибку, а при выводе пути выдаёт ???? вместо русских букв. Как это излечить?

Все как сказано Лекс Айрин. Цепляешь LazUTF8 модуль, и его функции SysToUTF8/UTF8ToSys... используешь при конечном обращении. Проблем нет.
Даже через поключение к офису, чтобы вытащить данные из Excel, приходится вставлять эти функции, чтобы все читаемо было. Со временем привыкаешь.
Аватара пользователя
dunin
энтузиаст
Сообщения: 634
Зарегистрирован: 02.05.2007 13:18:11
Откуда: Тољя††и
Контактная информация:

Сообщение dunin »

Sharfik писал(а):...Цепляешь LazUTF8 модуль, и его функции SysToUTF8/UTF8ToSys...

Они жеж завсегда в FileUtil были. Или в последних сборках переехали?
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

LCLProc вообще-то. И сейчас все это дело переехало действительно в LazUTF8. Плюс в секцию implementation я добавил вызов модуля LConvEncoding... но возможно это из-за моей неопытности.
Аватара пользователя
hinst
энтузиаст
Сообщения: 781
Зарегистрирован: 12.04.2008 18:32:38

Сообщение hinst »

а функции чтения из реестра в какой кодировке возвращают строки?
Ответить