Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.005 c
15-1276294725
Германн
2010-06-12 02:18
2010.09.05
Последний штришок в программу.


15-1276107937
da4
2010-06-09 22:25
2010.09.05
Онлайн музыка


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


2-1276080161
Анна
2010-06-09 14:42
2010.09.05
DataSet и передача параметров (MySQL5.1)


15-1276194359
zlodey
2010-06-10 22:25
2010.09.05
неопределенное DNS-имя




   Наверх