Два модуоя, две кодировки SysUtils, FileUtil
Модератор: Модераторы
Два модуоя, две кодировки SysUtils, FileUtil
Постоянно натыкаюсь на то, что функции требуются из обоих модулей SysUtils, FileUtil. Вариант обрабатывать все в UTF8 не проходит, потому что есть функции которые в SysUtils живут. Типа проверки и вставки слешей в конец пути. Есть какой нибудь еще модуль заменяющий SysUtils или самому лучше переписать его процедуры под UTF8?
- Лекс Айрин
- долгожитель
- Сообщения: 5723
- Зарегистрирован: 19.02.2013 16:54:51
- Откуда: Волгоград
- Контактная информация:
Sharfik в чем проблема? Если в том, что названия функций совпадают, то просто используйте имя модуля в имени функции/переменной.
Код: Выделить всё
Position := Types.Point(MainForm.Left, MainForm.Top + MainForm.MainEditor.Top +
MainForm.MainEditor.Height); Нет, насчет названия понятно.
Ну во первых, перемешивать все в одну кучу - потом разгребать долго.
Во вторых, большинство функция преобразования путей работают с Length(), Copy().
Если речь идет о одном символе, то возможно и без проблем найти какой то символ. Но функции альтернативные типа UTF8Length() сделаны не спроста же, длина у строк в разной кодировке разная.
Может заморачиваюсь, но глаза режет и попросту лень потом искать проблему, если ее сам создам из-за кодировок..
Ну во первых, перемешивать все в одну кучу - потом разгребать долго.
Во вторых, большинство функция преобразования путей работают с Length(), Copy().
Если речь идет о одном символе, то возможно и без проблем найти какой то символ. Но функции альтернативные типа UTF8Length() сделаны не спроста же, длина у строк в разной кодировке разная.
Может заморачиваюсь, но глаза режет и попросту лень потом искать проблему, если ее сам создам из-за кодировок..
- Лекс Айрин
- долгожитель
- Сообщения: 5723
- Зарегистрирован: 19.02.2013 16:54:51
- Откуда: Волгоград
- Контактная информация:
Sharfik, думаю, в большинстве случаев, это лишние заморочки. Тем более, что потихонечку идет миграция осей на UTF8.
Sharfik писал(а):Во вторых, большинство функция преобразования путей работают с Length(), Copy().
Если речь идет о одном символе, то возможно и без проблем найти какой то символ. Но функции альтернативные типа UTF8Length() сделаны не спроста же, длина у строк в разной кодировке разная.
Безусловно длинна разная. Суть в том что, так работает половина Lazarus. Часть нужно обрабатывать с помощью Length(), Copy(), другую с UTF8Length(). Переписывать SysUtils - это пустое, проще использовать SysToUTF8 и обратно, там где это необходимо.
а зачем искать отдельный символ? символы /?._-*#+ и проч. можно искать и в UTF-8 так как они один байт.
Я считаю, надо делать всё на UTF-8 сразу
Добавлено спустя 2 минуты 17 секунд:
есть модуль lazUtf8 вроде бы. Он поможет
Я считаю, надо делать всё на UTF-8 сразу
Добавлено спустя 2 минуты 17 секунд:
есть модуль lazUtf8 вроде бы. Он поможет
hinst писал(а):Я считаю, надо делать всё на UTF-8 сразу
Ну попробуйте это сделать на UTF8 в SynEdit => SelStart и SelEnd...
Перегоняем в UTF8 и делаем что хотим
http://wiki.freepascal.org/LCL_Unicode_Support/ru
http://lazarus-ccr.sourceforge.net/docs ... dex-5.html
http://wiki.freepascal.org/LCL_Unicode_Support/ru
http://lazarus-ccr.sourceforge.net/docs ... dex-5.html
