|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
06.09.2011, 05:27 | #1 |
Старожил
Регистрация: 05.06.2008
Сообщений: 4,206
|
Последовательность слов в тексте
Добрый день! Наличие или отсутствие какого-либо слова в тексте нет проблемы определить. А вот можно ли определить есть ли в тексте какая-либо последовательность слов? Например.
Есть текст №1: какой-то текст слово1 слово2 тут другой текст. Есть текст №2: слово1 какой-то текст слово2 тут другой текст. Смысл в том, чтобы проверить есть ли в тексте именно последовательность необходимых слов, т.е. чтобы проверка срабатывала даже если необходимые слова разделены каким-то текстом. Именно, что слово1 сначала идет, а потом слово2. Если есть такая последовательность слово1 и слово2, то выдать положительное сообщение. Если нет такой последовательности, то выдать отрицательное сообщение. Можно ли осуществить такое? Заранее спасибо за советы по делу.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
|
06.09.2011, 08:26 | #2 | |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
Цитата:
1. константа слово1 2. константа слово2 3. входной текст 4. проводим поиск константы 1 (если нет слова, возврат функции false) 5. найдя индекс константы 1, инкрементируем индекс на длину константы 1 6. от полученного индекса ведем поиск константы 2 (если нет слова, возврат функции false) 7. возврат функции true Думаю PosEx вполне должна подойти. |
|
06.09.2011, 08:47 | #3 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Я раньше занимался подобными экспериментами. В частности представлял строку как массив слов, разделителем служил пробел. Тогда задача сводится к классическим манипуляциям с элементами массива.
У меня где-то даже валялся исходник юнита, с набором функций где строка представляется как массив, стек и т.д. Удобно обрабатывать слова и предложения . Если не заморачиваться и все по-быстрому (задача на один раз), то можно строку загнать в TStringList и выставить разделителем пробел. Тогда каждый элемент по идее будет являться словом. То есть задача опять будет сведена к операции над массивом.
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика Последний раз редактировалось Utkin; 06.09.2011 в 08:54. |
06.09.2011, 08:56 | #4 |
Участник клуба
Регистрация: 28.03.2007
Сообщений: 1,814
|
а слово1 и слово2 один раз встечаются или могут несколько раз присутствовать в тексте
|
06.09.2011, 08:59 | #5 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Да там уже без разницы, лишь бы сохранялась последовательность.
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
06.09.2011, 09:18 | #6 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
Интерсная задачка=)
Я решил немного по своему, разделитель слов знак | т.к. пробелом можно и дел натворить... Вот решил помочь: Код:
При этом учитывается только нахождение всех слов aText, Если хоть одно слово не найдено, то false P.S. PoxEx находится в StrUtils.pas P.P.S. Помог? ;-) Последний раз редактировалось Человек_Борща; 06.09.2011 в 09:22. |
06.09.2011, 09:42 | #7 | |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
Цитата:
|
|
06.09.2011, 09:46 | #8 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Особенно с ErrLevel
Код:
Код:
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
06.09.2011, 09:48 | #9 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
Кому как удобнее. Я просто интерпритировал ваш текст в код.
Загоняем слова разделённые знаком | в массив. А далее ищем сначало первое слово а затем начиная с каждого предыдущего смещения искать след. слово. все=) Хоть и громоздокое но работает.. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Паскаль. Определение количества слов в тексте. | Evgesha | Помощь студентам | 17 | 12.04.2011 18:58 |
Текст, сколько слов в тексте? | BigBen | Помощь студентам | 1 | 13.01.2011 19:40 |
количество слов в тексте | almareta | Помощь студентам | 3 | 01.04.2010 20:59 |
Составить в алфавитном порядке список всех слов, встречающихся в тексте, и количество этих слов. | KAPAHDAW | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 17.02.2009 01:19 |
Поиск слов в тексте | pleer | Общие вопросы Delphi | 5 | 23.09.2007 08:19 |