![]() |
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]() ![]() ![]() |
|
al1ve |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 20.11.2008 Репутация: нет Всего: нет |
здравствуйте. подскажите пожалуйста алгоритм или программный код для поиска слова в введённом тексте, как например в Word`е для Delphi. я нашёл что-то но это кажись для СИ и не совсем то - http://base.vingrad.ru/view/2582-Algoritm-...ih-slov-v-fayle.
Это сообщение отредактировал(а) al1ve - 15.2.2011, 18:16 |
|||
|
||||
superVad |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 735 Регистрация: 6.4.2006 Где: Черкассы, Украина Репутация: 7 Всего: 15 |
По ссылке - модуль для Делфи.
Не совсем ясна задача. Может тебе функции pos хватит? |
|||
|
||||
al1ve |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 20.11.2008 Репутация: нет Всего: нет |
напомни для чего она. в текстовом поле набран произвольный текст (не абракадабра). при нажатии кнопки "обработать" программа должна найти в набранном тексте "плохие" слова и заменить их на слово типа "<cenosored>". проще говоря - мат-фильтр =)
|
|||
|
||||
meteor2312 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 19.11.2010 Репутация: нет Всего: нет |
Используй pos, delete, insert.
pos - определить положение подстроки в строке (возвращает порядковый номер первой буквы подстроки), delete - удаляет подстроку из строки, insert - вставляет подстроку в строку. Для подробного изучения гугл тебе в помощь ![]() |
|||
|
||||
Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 9 Всего: 133 |
Не используй pos, delete, insert, используй StringReplace
-------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
al1ve |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 20.11.2008 Репутация: нет Всего: нет |
хорошо, попробую. спасибо за помощь)
|
|||
|
||||
superVad |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 735 Регистрация: 6.4.2006 Где: Черкассы, Украина Репутация: 7 Всего: 15 |
||||
|
||||
al1ve |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 20.11.2008 Репутация: нет Всего: нет |
а искать плохие слова внутри слов так же? или уже самому придётся думать? например когда вот так - кошканоссобака. как замаскировать в данном примере например слово "нос"?
|
|||
|
||||
Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 9 Всего: 133 |
Регулярки для замены слов? Конкретных слов, кстати. Да ты шо..?
al1ve, ты про StringReplace читал вообще? Про тот же pos читал? Почитай, не будет таких вопросов. Текст в Дельфи (да и в других языках так же) не делится на слова. Пробел - это такой же символ как и "а". Так что функциям будет все равно, подсунешь ты им "кошканоссобака" или "кошка нос собака". "нос" найдет в любом случае. А вот если тебе нужно именно отдельно слово "нос" найти, то нужно применять хитрость и искать в тексте не "нос", а " нос " и варианты, типо " нос.", " нос," и т.д. -------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 22 Всего: 128 |
тогда регулярки в помощь) -------------------- There are always someone smarter than you... |
|||
|
||||
superVad |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 735 Регистрация: 6.4.2006 Где: Черкассы, Украина Репутация: 7 Всего: 15 |
||||
|
||||
Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 9 Всего: 133 |
Я обычно применяю регулярки когда нужно что-то по маске найти, "вырвать" из текста что-нибудь, подходящее по критерию, вывести текст в определенном формате. А когда нужно просто заменить одно слово на другое, то зачем усложнять проект регулярками, если есть стандартные функции?
Итить. Для "найти" pos в помощь. Для "заменить" - StringReplace. Что ж вы так эти регулярки полюбили-то? -------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 16 Всего: 54 |
А почему ты их не любишь? ведь для поиска они дают больше возможностей чем pos. -------------------- Кольцов Виктор Владимирович |
|||
|
||||
CodeMonkey |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 29 Всего: 89 |
l'arbre - это одно слово или два?
Это два в французском, но одно слово в английском. Это я к тому, что граница слова - довольно сложное понятие. Даже если ограничиться только русским, то в нём также найдётся место для импортированных слов. -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 9 Всего: 133 |
Зачем мне больше возможностей, когда мне надо мат заменить на "<cenosored>"? Т.е. одно слово заменить на второе. Как с пушки по воробьям.
А какая разница? Если нам надо его заменить полностью, то и сбиваем его в StringReplace полностью. Если частично, то вбиваем часть. И, по сути, нам по барабану одно тут слово или два. Мы работает с текстовой строкой, а не со словами и предложениями. Регулярки нужны когда надо действительно сложные операции с текстом сделать. А когда простая замена одного слова на другое... Вы пиво открыть тоже МЧС вызываете со спец. оборудованием или все же открывалкой пользуетесь? -------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |