Главная страница
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.01 c
15-1273241499
Кто б сомневался
2010-05-07 18:11
2010.09.05
Для тех кому не нравиться новый вид Гугла.


4-1239973010
ivashak
2009-04-17 16:56
2010.09.05
Установленные жесткие диски в системе


15-1276163521
bss
2010-06-10 13:52
2010.09.05
Работа TDateTime в отрицательном диапазоне


15-1276254260
novichek
2010-06-11 15:04
2010.09.05
SQL Microsoft.Jet.OLEDB.4.0? Access


2-1276234656
ruslan_as
2010-06-11 09:37
2010.09.05
Не могу получить значение