![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
Чую нутром, что в таком великолепном классе должно быть реализовано нечто подобное, но что-то не могу найти. Вопрос вот в чем, есть текст (достаточно большой), и есть подстрока. Нужно определить, сколько раз данная подстрока встречается в тексте. В подстроке может быть как часть текста (слово, часть слова), так и мета-символы. На данный момент все сделано так:
-------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
||||
|
||||
Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
Akella, вопрос твой я не понял. Понятно что код не весь, но, думаю, по нему понятно как и что сделано.
-------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
superVad |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 735 Регистрация: 6.4.2006 Где: Черкассы, Украина Репутация: 4 Всего: 15 |
Poseidon, ну посмотри какие у него методы есть в которых есть слово count.
|
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
Что за библиотека? DiRegExp, RegExprStudio, встроенная в дельфи библиотека есть. Их вон сколько бывает: http://forum.vingrad.ru/forum/topic-258533.html |
|||
|
||||
Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
![]() ![]() Ладно, раз пошла такая пляска, в какой библиотеке есть подобное? -------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 8 Всего: 20 |
Ну а в этой "студии" не удосужился посмотреть и попробовать "методы есть в которых есть слово count"? -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
northener, а прежде чем писать, сам не удосужился глянуть? Это было сделано первым делом.
-------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 31 Всего: 88 |
с ней не совсем всё в порядке в области внутренней конвертации из utf16 в utf8 или обратно
-------------------- Обижено школьников: 8 |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
Я использую последние несколько лет DiRegEx. Работает очень быстро, как мне кажется. Развивается. Поддерживает много чего, в точ числе и perl-совместимые регулярные выражения.
Poseidon, можешь сам проверить. Вот ссылка на exe-шник http://rghost.ru/private/41859976/6669e8e2...e1bc551e28b9ab5 в верхнее окошко вставляешь текст, в нижнее - выражение. Нажимаешь кнопку Match x1, а затем Count. Справа внизу, в строке статуса увидишь Execution time ..., ms Добавлено через 6 минут и 54 секунды Poseidon, но количество тоже вычисляется примерно так, как ты:
|
|||
|
||||
Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
Дело в том, что у меня порядка 4000 статей, каждая в среднем по 5 Кб чистого текста. Так вот мало того что приходится циклом поднимать каждую статью, так еще и в цикле считать вхождения. Вот я и подумал, что возможно можно как-то реализовать подсчет без цикла. Ну да ладно, я поднимаю приоритет циклов до Highest и получаю в среднем до 3х секунд на подсчет. Не критично.
-------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |