| 
| 
 | Вопрос # 153/ вопрос решён / | 
 |  Здравствуйте. В данный момент учусь на программиста, изучаю Delphi, задали мне кааую-то глупую задачу, которую я решил в пару минут, а над самым простым вопросом маюсь и маюсь, вы то уж точно знаете на него ответ, вопрос звучит так:"Среди функций для работы с символами найдите функцию, которая все строчные и прописные буквы  латинского алфавита приводит к одному формату". С уважением, Сергей Анатольевич. 
|  |   Вопрос задал: Полушин Сергей Анатольевич (статус: Посетитель)Вопрос отправлен: 9 ноября 2006, 17:46
 Состояние вопроса: решён, ответов: 2.
 |  Ответ #1. Отвечает эксперт: bruder Здравствуйте, Полушин Сергей Анатольевич!Функции UpperCase(Str: String) и LowerCase(Str: String) преобразуют строку соответственно в верхний и нижний регистры.
 Приложение:Переключить в обычный режим var Str1, Str2, Str3: String; { ... } Str1:='hELLo'; Str2:=UpperCase(Str1); { Str2 = "HELLO" } Str3:=LowerCase(Str1); { Str3 = "hello" }
|  | Ответ отправил: bruder (статус: 4-ый класс)Время отправки: 9 ноября 2006, 17:58
 Оценка за ответ: 5
 Комментарий к оценке: Коротко и ясно. Спасибо. |  Ответ #2. Отвечает эксперт: Alex Van Glukhman Здравствуйте, Полушин Сергей Анатольевич!Для работы со строками включающими символы национальной кодировки в том числе и WideString существуют функции:
 AnsiUpperCase() - для преобразования символов в верхний регистр и
 AnsiLowerCase() - соответственно в нижний.
 С русским языком работает великолепно.
 Функции описаны в модуле SysUtils.
 Удачи!!!
 
|  | Ответ отправил: Alex Van Glukhman (статус: 7-ой класс)Время отправки: 10 ноября 2006, 07:45
 Оценка за ответ: 5
 Комментарий к оценке: Спасибо большое. Действительно, мне даже стыдно за глупый вопрос. |  
 Мини-форум вопросаВсего сообщений: 5; последнее сообщение — 10 ноября 2006, 13:15; участников в обсуждении: 3. 
|   | Dron (статус: Студент), 9 ноября 2006, 18:14 [#1]:Да, это стандартные функции, но они работают лишь с латинским алфавитом. Судя по постановке задачи, именно их и требуется найти. Однако для практической реализации данной задачи (приведение символов к одному регистру) с русским языком, нужно написать свою собственную функцию. С уважением. |  
|   | bruder (статус: 4-ый класс), 9 ноября 2006, 18:21 [#2]:Есть и для русского: function UpCase(ch: char): char;
 begin
 if (ch in ['a'..'z', 'а'..'я']) then
 result := chr(ord(ch) - 32)
 else
 result := ch;
 end;
 
 function LoCase(ch: char): char;
 begin
 if (ch in ['A'..'Z', 'А'..'Я']) then
 result := chr(ord(ch) + 32)
 else
 result := ch;
 end;
 
 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;
 
 function LowerCase(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;
 |  
|   | Dron (статус: Студент), 9 ноября 2006, 19:25 [#3]:Это разные варианты что ли? Они почти одинаковые... С уважением. |  
|   | Alex Van Glukhman (статус: 7-ой класс), 10 ноября 2006, 07:48 [#4]:К чему колесо изобретать? AnsiUpperCase, AnsiLowerCase
 |  
|   | Dron (статус: Студент), 10 ноября 2006, 13:15 [#5]:Да, действительно, про них я забыл...  Хорошие функции. С уважением. |  31 января 2011, 19:24: Статус вопроса изменён на решённый (изменил модератор Ерёмин А.А.): Автоматическая обработка (2 и более ответов с оценкой 5) Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |