Вниз
Скачать: 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.48 MB
Время: 0.004 c
11-1222461831
Sax-mmS
2008-09-27 00:43
2010.09.05
Обработка NM_CUSTOMDRAW в TreeView (WinCE)


3-1244113042
ganda
2009-06-04 14:57
2010.09.05
Работа функцией UDF при вставки записи в Таблицу


6-1225550596
Andrey_
2008-11-01 17:43
2010.09.05
TIdHTTP


2-1276170937
linox
2010-06-10 15:55
2010.09.05
ADO ACCESS связанные таблицы просмотр инфо


15-1276193680
AKE
2010-06-10 22:14
2010.09.05
Я забыл можно ли объявлять функцию внутри функции?




   Наверх