Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

Альтерантива "Case"

-

Вопросы и ответы, обсуждения

- Ваши вопросы по Pascal/Delphi только в данном разделе

Ответ
 
Опции темы
Старый 02.08.2014, 05:23   #1
 Разведчик
Аватар для RamDigga
 
RamDigga неизвестен в этих краяхRamDigga неизвестен в этих краях
Регистрация: 27.10.2012
Сообщений: 24
Популярность: -183
Сказал(а) спасибо: 35
Поблагодарили 23 раз(а) в 14 сообщениях
Отправить сообщение для RamDigga с помощью Skype™
 
По умолчанию Альтерантива "Case"

Есть ли у оператора "Case" альтернатива ? Что бы можно было обрабатывать строки.


Например:

Цитата:
Case pos(Edit1.Text) of

lalka:ShowMessage('лалка');
lol:ShowMessage('лол');

end;

и т.п.
  Ответить с цитированием
Старый 02.08.2014, 09:23   #2
 Разведчик
Аватар для mad_cat
 
mad_cat скоро будет известенmad_cat скоро будет известенmad_cat скоро будет известенmad_cat скоро будет известенmad_cat скоро будет известен
Регистрация: 22.11.2012
Сообщений: 2
Популярность: 464
Сказал(а) спасибо: 0
Поблагодарили 22 раз(а) в 13 сообщениях
Отправить сообщение для mad_cat с помощью Skype™
 
По умолчанию Re: Альтерантива "Case"

Цитата:
Есть ли у оператора "Case" альтернатива

есть! IF называется
  Ответить с цитированием
Старый 02.08.2014, 14:22   #3
 Разведчик
Аватар для RamDigga
 
RamDigga неизвестен в этих краяхRamDigga неизвестен в этих краях
Регистрация: 27.10.2012
Сообщений: 24
Популярность: -183
Сказал(а) спасибо: 35
Поблагодарили 23 раз(а) в 14 сообщениях
Отправить сообщение для RamDigga с помощью Skype™
 
По умолчанию Re: Альтерантива "Case"

Цитата:
Сообщение от mad_catПосмотреть сообщение
есть! IF называется

Не подходит. Лес if не охото строить
  Ответить с цитированием
Старый 02.08.2014, 14:36   #4
 Пехотинец
Аватар для Хакерок:)
 
Хакерок:) на правильном путиХакерок:) на правильном пути
Регистрация: 06.07.2009
Сообщений: 81
Популярность: 126
Сказал(а) спасибо: 32
Поблагодарили 93 раз(а) в 36 сообщениях
Отправить сообщение для Хакерок:) с помощью ICQ
 
Post Re: Альтерантива "Case"

Цитата:
Сообщение от RamDiggaПосмотреть сообщение
Есть ли у оператора "Case" альтернатива ? Что бы можно было обрабатывать строки.


Например:



и т.п.

Альтернатива? А зачем, если Case и так можно применять к строкам.
Если причина ваших поисков в том, что у вас не получается скомпилировать ваш пример, то хотелось бы кое-что пояснить:
Цитата:
Pos - Функция находит позицию одной строки в другой
Код:
function Pos(const Needle, HayStack:string):Integer;

В итоге вы пытаетесь далее сравнивать результат этой функции (а это число типа Integer) c lalka и lol, при этом записанные как переменные, хотя вы, видимо, пытались записать их как строку.
Но если вы хотите проверить наличие подстроки в строке, то проще использовать обычный оператор условия if.
Код:
if pos('lalka',Edit1.Text)>0 then ShowMessage('лалка');
________________

Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
,
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
  Ответить с цитированием
Пользователь сказал cпасибо:
RamDigga (02.08.2014)
Старый 02.08.2014, 14:40   #5
 Разведчик
Аватар для RamDigga
 
RamDigga неизвестен в этих краяхRamDigga неизвестен в этих краях
Регистрация: 27.10.2012
Сообщений: 24
Популярность: -183
Сказал(а) спасибо: 35
Поблагодарили 23 раз(а) в 14 сообщениях
Отправить сообщение для RamDigga с помощью Skype™
 
По умолчанию Re: Альтерантива "Case"

Цитата:
Сообщение от Хакерок:)Посмотреть сообщение
Альтернатива? А зачем, если Case и так можно применять к строкам.
Если причина ваших поисков в том, что у вас не получается скомпилировать ваш пример, то хотелось бы кое-что пояснить:

В итоге вы пытаетесь далее сравнивать результат этой функции (а это число типа Integer) c lalka и lol, при этом записанные как переменные, хотя вы, видимо, пытались записать их как строку.
Но если вы хотите проверить наличие подстроки в строке, то проще использовать обычный оператор условия if.
Код:
if pos('lalka',Edit1.Text)>0 then ShowMessage('лалка');

if там очень много будет. Запутаюсь блин
  Ответить с цитированием
Старый 02.08.2014, 14:59   #6
 Пехотинец
Аватар для Хакерок:)
 
Хакерок:) на правильном путиХакерок:) на правильном пути
Регистрация: 06.07.2009
Сообщений: 81
Популярность: 126
Сказал(а) спасибо: 32
Поблагодарили 93 раз(а) в 36 сообщениях
Отправить сообщение для Хакерок:) с помощью ICQ
 
Post Re: Альтерантива "Case"

Цитата:
Сообщение от RamDiggaПосмотреть сообщение
if там очень много будет. Запутаюсь блин

А другие способы будут еще длиннее и сложнее. Функцию Pos придётся применять для проверки каждого слова. Ну или можно проверять в цикле, если предварительно создать массив необходимых слов)
________________

Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
,
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
  Ответить с цитированием
Пользователь сказал cпасибо:
RamDigga (02.08.2014)
Старый 07.11.2014, 15:08   #7
 Пехотинец
Аватар для monahus
 
monahus излучает ауруmonahus излучает ауруmonahus излучает ауруmonahus излучает ауруmonahus излучает ауруmonahus излучает ауру
Регистрация: 17.02.2010
Сообщений: 61
Популярность: 647
Сказал(а) спасибо: 12
Поблагодарили 43 раз(а) в 14 сообщениях
Отправить сообщение для monahus с помощью ICQ Отправить сообщение для monahus с помощью Skype™
 
Cool Re: Альтерантива "Case"

А такой вариант:
PHP код:
var
  
L:TstringList;
  
p:integer;
begin
  L 
:= Tstringlist.create;
  
L.text := 'тут пишем наши строки разделяя их #10#13';
  
// Или читаем из файла
  
L.LoadfromFile(filename);
  
p:=L.Indexof(edit1.text);
  case 
p of
    
-1:showmessge('текст не найден');

  
end
В качестве контейнера можно использовать Memo1.Lines или ListBox1.Items
________________
Мои программы живут [Ссылки могут видеть только зарегистрированные пользователи. ]
  Ответить с цитированием
Старый 08.11.2014, 10:10   #8
Подпольщик Aion
 Рыцарь-капитан
Аватар для Tr0y
 
Tr0y троюродный дядя Чака НоррисаTr0y троюродный дядя Чака НоррисаTr0y троюродный дядя Чака НоррисаTr0y троюродный дядя Чака НоррисаTr0y троюродный дядя Чака НоррисаTr0y троюродный дядя Чака НоррисаTr0y троюродный дядя Чака НоррисаTr0y троюродный дядя Чака НоррисаTr0y троюродный дядя Чака НоррисаTr0y троюродный дядя Чака НоррисаTr0y троюродный дядя Чака Норриса
Регистрация: 18.10.2009
Сообщений: 480
Популярность: 7804
Золото Zhyk.Ru: 115
Сказал(а) спасибо: 85
Поблагодарили 498 раз(а) в 172 сообщениях
 
По умолчанию Re: Альтерантива "Case"

Можно подставлять интересующий массив ваших искомых слов и прогнать это в цикле с проверкой на вхождение в строку, количеств итерации будет равно кол-ву слов в массиве.

var words = array['lol','lolka'] of string;
...
for i:=0 to length(words) do
if words[i] = ... then ...

Я иногда пользуюсь [Ссылки могут видеть только зарегистрированные пользователи. ] там удобный поиск того, что интересует.
________________
ʕ•ᴥ•ʔ
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).

Последний раз редактировалось Tr0y; 08.11.2014 в 10:13.
  Ответить с цитированием
Пользователь сказал cпасибо:
NebesaBag (09.11.2014)
Ответ


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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Продам] Продаю юани "Адара" "Лира" "Эридан" "Омега" Феникс" antony_densov Perfect World 16 10.04.2013 21:43
[Информация] """""""""""Лучшая тема по итогам голосования"""""""""" +ESEL- Общение и обсуждение, архив Point Blank 0 16.04.2011 09:12

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 07:57.

Пишите нам: forum@zhyk.ru
Copyright © 2025 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net