Есть ли у оператора "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 сообщение(ий).
Альтернатива? А зачем, если Case и так можно применять к строкам.
Если причина ваших поисков в том, что у вас не получается скомпилировать ваш пример, то хотелось бы кое-что пояснить:
В итоге вы пытаетесь далее сравнивать результат этой функции (а это число типа Integer) c lalka и lol, при этом записанные как переменные, хотя вы, видимо, пытались записать их как строку.
Но если вы хотите проверить наличие подстроки в строке, то проще использовать обычный оператор условия if.
Код:
if pos('lalka',Edit1.Text)>0 then ShowMessage('лалка');
А другие способы будут еще длиннее и сложнее. Функцию Pos придётся применять для проверки каждого слова. Ну или можно проверять в цикле, если предварительно создать массив необходимых слов)
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
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
________________
Мои программы живут [Ссылки могут видеть только зарегистрированные пользователи. ]
Можно подставлять интересующий массив ваших искомых слов и прогнать это в цикле с проверкой на вхождение в строку, количеств итерации будет равно кол-ву слов в массиве.
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.