|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
16.04.2012, 20:45 | #1 |
Регистрация: 23.04.2009
Сообщений: 7
|
Проблема с поиском слов в строке
Всем привет.
Функцией pos пытаюсь найти позицию нужного мне слова в строке Например: строка: s:='Весной фотограф сделал фото'; поиск: pos('фото',s) Так вот, функция находит позицию слова " фотограф ", а мне нужно найти слово " фото ". Пробывал искать с пробелом: pos('фото ',s), результат тот же. Вопрос: Как найти слово в строке целиком, без его вхождений в другие слова? |
16.04.2012, 21:22 | #2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
После нахождения позиции 'фото' анализировать символы слева и справа, если там пробелы, знаки пунктуации, перевод каретки или конец (начало) всей строки, то слово найдено. Иначе искать дальше, с помощью например, PosEx
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
16.04.2012, 21:25 | #3 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Хитрый ход:
Код:
Цитата:
I'm learning to live...
|
|
17.04.2012, 07:32 | #4 |
Регистрация: 23.04.2009
Сообщений: 7
|
Решил следующим образом:
Код:
в принципе все работает, но если можно оптимизировать код, то подскажите |
17.04.2012, 07:48 | #5 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Мне идея от Stilet понравилась, только адаптировать ее для строк со специальными символами. В начало и конец по пробелу и в цикле по-символьно перетащить в другую строку, вставляя вместо каждого специального символа его же с пробелами слева и справа. И тогда просто Pos(' фото ',s) или еще лучше Pos(' ФОТО ',AnsiUpperCase(s))
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 17.04.2012 в 08:00. |
17.04.2012, 09:00 | #6 | |
Форумчанин
Регистрация: 29.05.2011
Сообщений: 449
|
Цитата:
// полностью библиотека будет доступна на сайте netsoftware.ucoz.ru для свзяи ICQ 368-253-335 Код:
Код:
Код:
Код:
задания на pascal/delphi ICQ 368254335
Tel +79177425326 mail denis-naymov1985(at)mail.ru login skype denis.new.skype Последний раз редактировалось denisbrain; 17.04.2012 в 09:32. |
|
17.04.2012, 10:08 | #7 |
Регистрация: 23.04.2009
Сообщений: 7
|
denisbrain, большое спасибо, все отлично работает,
вопрос закрыт. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сравнение кол-ва слов в строке и сопоставление аналогичной строке. | kish_mish | Общие вопросы C/C++ | 0 | 12.03.2012 20:58 |
Ввести с клавиатуры строку. Посчитать количество слов в строке. Определить, что является разделителем слов. Вывести рез-ть на экра | Газимов | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 3 | 02.03.2012 15:58 |
Просьба помочь разобраться с поиском в строке по алгоритму Бойера-Мура | Ветас | Помощь студентам | 1 | 16.11.2009 18:52 |