![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Здравствуйте.
Нужно реализовать функцию, которая меняет регистр введённого (на русском) слова. Нугуглив простенькую функцию обрадовался. Код:
function UpperCase(s: string): string;
var
i: integer;
begin
result := s;
for i := 1 to length(result) do
if (result[i] in ['a'..'z', 'а'..'я']) then
result[i] := chr(ord(result[i]) - 32);
end;Но почему то срабатывает только с англ. буквами. Пробую мучить код Код:
Но почему то срабатывает только с англ. буквами. Пробую мучить код результат никакой но если написать вот так Код:
if (‘п’ in ['a'..'z', 'а'..'я']) then result[i] := chr(ord(result[i]) - 32); то срабатывает. Наверное, всё дело в кодировке, но так с делфи недавно работаю знаний не хватает. |
|
#2
|
||||
|
||||
|
используй StrUtils.AnsiUpperCase():
Код:
DWORD CharUpperBuff(
LPTSTR lpsz, // pointer to buffer containing characters to process
DWORD cchLength // number of characters to process
); |
|
#3
|
|||
|
|||
|
Цитата:
|