Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.09.05;
Скачать: CL | DM;

Вниз

Приколы с 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.006 c
15-1276349218
HRustBB
2010-06-12 17:26
2010.09.05
здесь любой может писать от моего имени?


15-1276150830
gog
2010-06-10 10:20
2010.09.05
Поблема инстоляции/запуска


15-1276207217
Германн
2010-06-11 02:00
2010.09.05
Хочу создать glyph для кнопки.


2-1276126770
студент
2010-06-10 03:39
2010.09.05
drag&drop


2-1276185461
Artemon
2010-06-10 19:57
2010.09.05
Вывод времени в QRDBText