Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 01.01.2013, 18:37
Neolane Neolane вне форума
Прохожий
 
Регистрация: 01.01.2013
Сообщения: 2
Репутация: 10
Вопрос Изменение регистра русских букв

Здравствуйте.
Нужно реализовать функцию, которая меняет регистр введённого (на русском) слова.
Нугуглив простенькую функцию обрадовался.


Код:
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  
Старый 01.01.2013, 19:02
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

используй StrUtils.AnsiUpperCase():
Код:
DWORD CharUpperBuff(
    LPTSTR lpsz,	// pointer to buffer containing characters to process 
    DWORD cchLength 	// number of characters to process  
   );
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #3  
Старый 01.01.2013, 21:04
Neolane Neolane вне форума
Прохожий
 
Регистрация: 01.01.2013
Сообщения: 2
Репутация: 10
По умолчанию

Цитата:
Сообщение от NumLock
используй StrUtils.AnsiUpperCase():
Код:
DWORD CharUpperBuff(
    LPTSTR lpsz,	// pointer to buffer containing characters to process 
    DWORD cchLength 	// number of characters to process  
   );
большое спасибо
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 03:01.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025