Форум: "Начинающим";
Текущий архив: 2010.09.05;
Скачать: [xml.tar.bz2];
ВнизПриколы с AnsiSameText Найти похожие ветки
← →
harisma © (2010-06-07 18:06) [0]В процессе своей работы столкнулся с таким приколом:
Оказывается, если в Винде в языковых настройках установлен "Украинский" язык, то если при помощи этой функции сравниваются 2 строки в которых есть мягкий знак (а может и какие другие специфичные буквы - я не проверял), сами строки абсолютно идентичны, но находятся в разных регистрах (собственно согласно документации для этой функции это не проблема, так как функция регистронезависима), то результат будет ОТРИЦАТЕЛЬНЫЙ!!! То есть:
AnsiSameText("ФИСКАЛЬНЫЙ БЛОК", "Фискальный блок") = False!!!
Кто с таким стыкался и какие есть решения этой проблемы (кроме приведения сравниваемых строк к одному регистру, скажем верхнему или нижнему)?
Спасибо.
← →
Медвежонок Пятачок © (2010-06-07 18:23) [1]а что скажет AnsiCompareText ?
← →
Игорь Шевченко © (2010-06-07 18:42) [2]Чему тут удивляться ?
Result := CompareString(LOCALE_USER_DEFAULT, NORM_IGNORECASE, PChar(S1),
Length(S1), PChar(S2), Length(S2)) - 2;
для украинской страницы при LOCALE_USER_DEFAULT преобразование выполняется одним образом, для китайской, скажем, другим, для немецкой
ß и ss в каком-то случае значат одно и то же.
← →
Leonid Troyanovsky © (2010-06-07 18:49) [3]
> Игорь Шевченко © (07.06.10 18:42) [2]
> Чему тут удивляться ?
Скрипач оранжевый от зеленого отличить не может.
--
Regards, LVT.
← →
Anatoly Podgoretsky © (2010-06-07 18:56) [4]> harisma (07.06.2010 18:06:00) [0]
Смешаны буквы латинского и русского языка.
← →
Leonid Troyanovsky © (2010-06-07 18:57) [5]
> Anatoly Podgoretsky © (07.06.10 18:56) [4]
> Смешаны буквы латинского и русского языка.
И украинского тож.
--
Regards, LVT.
← →
Anatoly Podgoretsky © (2010-06-07 19:26) [6]> Leonid Troyanovsky (07.06.2010 18:57:05) [5]
Украинского языка нет.
Это расширение русского, кодовой страницы 1251
← →
Leonid Troyanovsky © (2010-06-07 19:46) [7]
> Anatoly Podgoretsky © (07.06.10 19:26) [6]
> Украинского языка нет.
Не повезло.
--
Regards, LVT.
← →
harisma © (2010-06-08 11:12) [8]Ну, ваше мнение понятно. Благодарствую. А как насчет второй части моего вопроса? Как можно решить данную проблему кроме как приведя сравниваемые строки к одному регистру?
← →
Игорь Шевченко © (2010-06-08 11:28) [9]
> Как можно решить данную проблему кроме как приведя сравниваемые
> строки к одному регистру?
Вызвать CompareString с нужной локалью
← →
программер (2010-06-08 14:52) [10]AnsiSamestr?
← →
ASCII (2010-06-08 16:53) [11]Удалено модератором
← →
Anatoly Podgoretsky © (2010-06-08 17:12) [12]> ASCII (08.06.2010 16:53:11) [11]
KOI8-U это тоже раширение KOI8-R, где R это рашен, уже не кирилица.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2010.09.05;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.003 c