Сейчас на форуме: tyns777 (+5 невидимых)

 eXeL@B —› Программирование —› UpperCase и LowerCase в delphi для кирилицы не работают
Посл.ответ Сообщение

Ранг: 113.4 (ветеран)
Активность: 0.130
Статус: Участник
Ветеран

Создано: 02 января 2008 23:57
· Личное сообщение · #1

Здравствуйте!
Вот обнаружил интересную штуковину: UpperCase и LowerCase в delphi для кирилицы не работают. Вопрос, почему? Можно ли это обойти и заставить их работать?

P.S. Знаю, что написать свои элементарно, но всё же более интересно заставить работать стандартные и выяснить почему они косят.

-----
моя подпись!





Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

Создано: 03 января 2008 00:11
· Личное сообщение · #2

поробуй AnsiLowerCase

-----
[nice coder and reverser]




Ранг: 309.8 (мудрец), 21thx
Активность: 0.170
Статус: Участник

Создано: 03 января 2008 02:32
· Личное сообщение · #3

CharToOem()

-----
Shalom ebanats!





Ранг: 756.3 (! !), 113thx
Активность: 0.610.05
Статус: Участник
Student

Создано: 03 января 2008 07:53 · Поправил: Isaev
· Личное сообщение · #4

function UpCaseRus(ch: Char): Char;
asm
CMP AL,'a'
JB @@exit
CMP AL,'z'
JA @@Rus
SUB AL,'a' - 'A'
RET
@@Rus:
CMP AL,'я'
JA @@Exit
CMP AL,'а'
JB @@yo
SUB AL,'я' - 'Я'
RET
@@yo:
CMP AL,'¸' // эта хрень, типа ё/Ё
JNE @@exit
MOV AL,'¨'
@@exit:
end;

function LoCaseRus( ch : Char ) : Char;
{Перевод символа в нижний регистр для русского алфавита}
asm
CMP AL,'A'
JB @@exit
CMP AL,'Z'
JA @@Rus
ADD AL,'a' - 'A'
RET
@@Rus:
CMP AL,'Я'
JA @@Exit
CMP AL,'А'
JB @@yo
ADD AL,'я' - 'Я'
RET
@@yo:
CMP AL,'¨'
JNE @@exit
MOV AL,'¸'
@@exit:
end;


-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh




Ранг: 113.4 (ветеран)
Активность: 0.130
Статус: Участник
Ветеран

Создано: 03 января 2008 10:17
· Личное сообщение · #5

Всем спасибо! AnsiLowerCase - Подошёл.
Isaev
Спасибо за код. Мне не трудно и самому написать, но к сожалению нужно было обойтись стандартными средствами.


Ещё раз всем спасибо!

-----
моя подпись!



 eXeL@B —› Программирование —› UpperCase и LowerCase в delphi для кирилицы не работают
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати