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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 23.04.2008, 21:28
kobezzza kobezzza вне форума
Прохожий
 
Регистрация: 28.03.2008
Сообщения: 13
Репутация: 10
По умолчанию Вопросик по Case

Вообщем у меня была задачка цифорки перевести в слова...я сделал её, но по кривому( через If, вот решил переделать под Case, но прога отказывает работать( Подскажите плз де у мя не правильно, и как сделать, чтобы всё было кул)Заранее благодарен)
Код:
1
2
3
4
a:=copy(edit1.Text,1,1);
case a of
 '1': label1.Caption:='Один';
end;
Ответить с цитированием
  #2  
Старый 23.04.2008, 21:37
Аватар для Admin
Admin Admin вне форума
Администратор
 
Регистрация: 03.10.2005
Адрес: Россия, Москва
Сообщения: 1,553
Версия Delphi: Delphi 7
Репутация: выкл
По умолчанию

Цитата:
Сообщение от kobezzza
Вообщем у меня была задачка цифорки перевести в слова...я сделал её, но по кривому( через If, вот решил переделать под Case, но прога отказывает работать( Подскажите плз де у мя не правильно, и как сделать, чтобы всё было кул)Заранее благодарен)
Код:
1
2
3
4
a:=copy(edit1.Text,1,1);
case a of
 '1': label1.Caption:='Один';
end;
Код:
1
2
3
4
a:=copy(edit1.Text,1,1);
case StrToInt(a) of
 1: label1.Caption:='Один';
end;
Ответить с цитированием
  #3  
Старый 24.04.2008, 09:44
Аватар для Thrasher
Thrasher Thrasher вне форума
Illuminati
 
Регистрация: 06.03.2008
Адрес: Крым, г. Симферополь
Сообщения: 348
Репутация: 8808
По умолчанию

Еще можно так (способ из очень далёкого прошлого, когда не было функции IntToStr):

Код:
1
2
3
4
5
6
7
var C:char
begin
C:=edit1.Text[1];
case Ord(C)-$30 of
1:label1.Caption:='Один';
end;
end;

или так:

Код:
1
2
3
4
5
6
7
var C:char
begin
C:=edit1.Text[1];
case C of
#$31:label1.Caption:='Один';
end;
end;
__________________
Хорошо написанная программа не требует документации
ICQ 9-184-668.
Ответить с цитированием
  #4  
Старый 24.04.2008, 11:38
Gad99 Gad99 вне форума
Новичок
 
Регистрация: 21.02.2008
Адрес: мурманск
Сообщения: 72
Репутация: 10
По умолчанию

В общих чертах все это сводится к тому что оператор CASE неможет оперировать строковыми типами
Кстати можно попробовать еще так:
Код:
1
2
3
4
5
6
7
8
Var a : integer;
Begin
 a := StrToInt(copy(edit1.Text,1,1));
 Case a of
 1 : label1.Caption:='Один';
   Else label1.Caption:='Неизвестное человечеству число';
 End;
End;

Последний раз редактировалось Gad99, 24.04.2008 в 11:46.
Ответить с цитированием
  #5  
Старый 31.08.2008, 00:54
Аватар для <<D>>
<<D>> <<D>> вне форума
Активный
 
Регистрация: 06.05.2007
Адрес: ГДЕ ТО В СОЛНЕЧНОЙ СИСТЕМЕ
Сообщения: 207
Репутация: 15
По умолчанию

Раз тема открыта, продолжу.
Меня интересует как использовать
case для строки String.
Пример:
Код:
1
2
3
case str of
'Текст': Команда;
end;

Помогите пож!
__________________
Кому я должен - всем прощаю!!!!
Ответить с цитированием
  #6  
Старый 31.08.2008, 02:44
Аватар для Dux
Dux Dux вне форума
Активный
 
Регистрация: 18.03.2008
Сообщения: 206
Репутация: 16
По умолчанию

Да, вопрос интересный. Я тоже как-то сталкивался, но ответа, насколько помню, не нашел..
Ответить с цитированием
  #7  
Старый 31.08.2008, 07:59
Аватар для :S.p.a.m.
:S.p.a.m. :S.p.a.m. вне форума
Активный
 
Регистрация: 04.05.2008
Сообщения: 260
Репутация: 15
По умолчанию

Цитата:
Сообщение от <<D>>
Раз тема открыта, продолжу.
Меня интересует как использовать
case для строки String.
Пример:
Код:
1
2
3
case str of
'Текст': Команда;
end;

Помогите пож!
вот что нашел через гугл
http://www.delphisources.ru/pages/fa...str_case2.html
Ответить с цитированием
  #8  
Старый 31.08.2008, 17:58
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

PHP код:
case UpperCase(Str[1]) Of
  
'O':If UpperCase(Str)='ONE' Then {Some procedure or function};
  
'T':If UpperCase(Str)='TWO' Then {Some procedure or function}
    Else If 
UpperCase(Str)='THREE' Then {Some procedure or function}; 
end
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию

Последний раз редактировалось M.A.D.M.A.N., 31.08.2008 в 18:08.
Ответить с цитированием
  #9  
Старый 31.08.2008, 21:38
Аватар для <<D>>
<<D>> <<D>> вне форума
Активный
 
Регистрация: 06.05.2007
Адрес: ГДЕ ТО В СОЛНЕЧНОЙ СИСТЕМЕ
Сообщения: 207
Репутация: 15
По умолчанию

Всем спасибо! Помогли!
__________________
Кому я должен - всем прощаю!!!!
Ответить с цитированием
  #10  
Старый 31.08.2008, 21:52
Аватар для Dux
Dux Dux вне форума
Активный
 
Регистрация: 18.03.2008
Сообщения: 206
Репутация: 16
По умолчанию

Цитата:
Сообщение от M.A.D.M.A.N.
PHP код:
case UpperCase(Str[1]) Of
  
'O':If UpperCase(Str)='ONE' Then {Some procedure or function};
  
'T':If UpperCase(Str)='TWO' Then {Some procedure or function}
    Else If 
UpperCase(Str)='THREE' Then {Some procedure or function}; 
end

В этом случае теряется смысл использования case, т.к. вы все-равно работаете с IF THEN ELSE
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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