Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - Delphi | UpperCase на Delphi 7

Ответить
Настройки темы
Delphi - Delphi | UpperCase на Delphi 7

Пользователь


Сообщения: 70
Благодарности: 2

Профиль | Отправить PM | Цитировать


собственно сабж.... а дело вот в чем: Эта фигня не работает с русскими буквами (Делфи 7). Т.е. как буква была маленькой, так она и остается (с английскими все нормально). Может кто подскажет чего...?
Можно конечно написать свою процедуру, но мне лень...

Отправлено: 13:49, 26-01-2006

 
lehha


Сообщения: n/a

Профиль | Цитировать


Стандартная WINAPI функция
LPTSTR CharUpper(LPTSTR lpsz);

Отправлено: 13:58, 26-01-2006 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Scorpion666

Пользователь


Сообщения: 81
Благодарности: 1

Профиль | Сайт | Отправить PM | Цитировать


Оригинальная функция

function UpperCase(const S: string): string;
var
Ch: Char;
L: Integer;
Source, Dest: PChar;
begin
L := Length(S);
SetLength(Result, L);
Source := Pointer(S);
Dest := Pointer(Result);
while L <> 0 do
begin
Ch := Source^;
if (Ch >= 'a') and (Ch <= 'z')
then Dec(Ch, 32);
Dest^ := Ch;
Inc(Source);
Inc(Dest);
Dec(L);
end;
end;


Исправленная функция

function UpperCaseAll(const S: string): string;
var
Ch: Char;
L: Integer;
Source, Dest: PChar;
begin
L := Length(S);
SetLength(Result, L);
Source := Pointer(S);
Dest := Pointer(Result);
while L <> 0 do
begin
Ch := Source^;
if ((Ch >= 'a') and (Ch <= 'z')) or ((Ch >= 'а') and (Ch <= 'я'))
then Dec(Ch, 32);
Dest^ := Ch;
Inc(Source);
Inc(Dest);
Dec(L);
end;
end;

Отправлено: 14:38, 26-01-2006 | #3


Аватара для CyberDaemon

DOOMer


Сообщения: 3254
Благодарности: 438

Профиль | Отправить PM | Цитировать


Конечно не работает - она для 7-битного представления символа.
Для русских буковок нужен AnsiUpperCase. Или в 7 Delphi эту функцию исключили?

Вообще-то это RTFM. Глянул бы хелп по UpperCase - не спрашивал бы

-------
"640 K ought to be enough for anybody" Bill Gates, 1981


Отправлено: 15:42, 26-01-2006 | #4



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - Delphi | UpperCase на Delphi 7

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Delphi - C++ vs Delphi BigMac Программирование и базы данных 76 13-01-2004 09:54
Delphi - Delphi Surround Программирование и базы данных 11 10-01-2004 22:13
Delphi - Delphi Zx Программирование и базы данных 3 27-08-2003 10:19
Delphi - Delphi Roman Go Программирование и базы данных 9 25-12-2002 15:48
Delphi - Delphi Roman Go Программирование и базы данных 11 11-12-2002 14:43




 
Переход