Два модуоя, две кодировки SysUtils, FileUtil

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

Два модуоя, две кодировки SysUtils, FileUtil

Сообщение Sharfik » 18.08.2015 16:06:12

Постоянно натыкаюсь на то, что функции требуются из обоих модулей SysUtils, FileUtil. Вариант обрабатывать все в UTF8 не проходит, потому что есть функции которые в SysUtils живут. Типа проверки и вставки слешей в конец пути. Есть какой нибудь еще модуль заменяющий SysUtils или самому лучше переписать его процедуры под UTF8?
Аватара пользователя
Sharfik
энтузиаст
 
Сообщения: 759
Зарегистрирован: 20.07.2013 01:04:30

Re: Два модуоя, две кодировки SysUtils, FileUtil

Сообщение Лекс Айрин » 18.08.2015 16:12:44

Sharfik в чем проблема? Если в том, что названия функций совпадают, то просто используйте имя модуля в имени функции/переменной.

Код: Выделить всё
Position := Types.Point(MainForm.Left, MainForm.Top + MainForm.MainEditor.Top +
      MainForm.MainEditor.Height);
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Два модуоя, две кодировки SysUtils, FileUtil

Сообщение Sharfik » 18.08.2015 16:34:32

Нет, насчет названия понятно.
Ну во первых, перемешивать все в одну кучу - потом разгребать долго.
Во вторых, большинство функция преобразования путей работают с Length(), Copy().
Если речь идет о одном символе, то возможно и без проблем найти какой то символ. Но функции альтернативные типа UTF8Length() сделаны не спроста же, длина у строк в разной кодировке разная.

Может заморачиваюсь, но глаза режет и попросту лень потом искать проблему, если ее сам создам из-за кодировок..
Аватара пользователя
Sharfik
энтузиаст
 
Сообщения: 759
Зарегистрирован: 20.07.2013 01:04:30

Re: Два модуоя, две кодировки SysUtils, FileUtil

Сообщение Лекс Айрин » 18.08.2015 17:07:17

Sharfik, думаю, в большинстве случаев, это лишние заморочки. Тем более, что потихонечку идет миграция осей на UTF8.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Два модуоя, две кодировки SysUtils, FileUtil

Сообщение vitaly_l » 31.08.2015 23:25:44

Sharfik писал(а):Во вторых, большинство функция преобразования путей работают с Length(), Copy().
Если речь идет о одном символе, то возможно и без проблем найти какой то символ. Но функции альтернативные типа UTF8Length() сделаны не спроста же, длина у строк в разной кодировке разная.

Безусловно длинна разная. Суть в том что, так работает половина Lazarus. Часть нужно обрабатывать с помощью Length(), Copy(), другую с UTF8Length(). Переписывать SysUtils - это пустое, проще использовать SysToUTF8 и обратно, там где это необходимо.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Два модуоя, две кодировки SysUtils, FileUtil

Сообщение hinst » 31.08.2015 23:51:50

а зачем искать отдельный символ? символы /?._-*#+ и проч. можно искать и в UTF-8 так как они один байт.
Я считаю, надо делать всё на UTF-8 сразу

Добавлено спустя 2 минуты 17 секунд:
есть модуль lazUtf8 вроде бы. Он поможет
Аватара пользователя
hinst
энтузиаст
 
Сообщения: 781
Зарегистрирован: 12.04.2008 18:32:38

Re: Два модуоя, две кодировки SysUtils, FileUtil

Сообщение vitaly_l » 31.08.2015 23:55:22

hinst писал(а):Я считаю, надо делать всё на UTF-8 сразу

Ну попробуйте это сделать на UTF8 в SynEdit => SelStart и SelEnd...
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Два модуоя, две кодировки SysUtils, FileUtil

Сообщение Ism » 31.08.2015 23:56:08

Ism
энтузиаст
 
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08


Вернуться в Общие вопросы

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

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

Рейтинг@Mail.ru