![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Voyager |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 532 Регистрация: 8.2.2005 Репутация: 2 Всего: 18 |
Пишу программу. Есть проблема:
Есть нетипизированный файл. Есть строка длиной 18 байтов. Нужно найти эту строку в файле (или найти максимальную длину части строки, которая встречается в файле). Вопрос думаю ясен. Так вот, сделал я этот поиск, но уж больно медленно он происходит. Знаю что можно его значительно ускорить. Есть ли варианты, алгоритмы? Поиск на форуме проблему не разъяснил. |
|||
|
||||
| Underdark |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 70 Регистрация: 12.7.2004 Где: Ульяновск Репутация: 1 Всего: 2 |
А код показать? |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: нет Всего: 454 |
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Voyager |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 532 Регистрация: 8.2.2005 Репутация: 2 Всего: 18 |
Вот код.
Memory - файл висит в памяти. block - искомая строка. len - длина (18) pos - позиция в файле (ищем в 4 кб до данной позиции). Добавлено @ 12:17 Akina Смотрел, но как применить конкретно к данному случаю придумать пока не могу. |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: нет Всего: 454 |
Voyager
Тебе надо сразу понять - поиск полного совпадения и поиск частичного совпадения надо вести разными модулями, т.е. кодить по отдельности. Потому как искать частичное совпадение усекновением подстроки и поиском полного совпадения подстроки не очень разумно... Поиск точного совпадения полность рассмотрен по ссылке, и додумывать там нечего. Ну разве что файл большой и в память его целиком не взять (по любой причине) - тогда предусмотреть буфер чтения и искать кусками... хотя разумнее потратить эту память на составление словаря текста и искать уже в нем... поиск подстроки же сразу разумнее вести через словарь. ИМХО конечно. Кода не дам - в Дельфах ни фига не понимаю. Разобраться могу, конечно, но не более, ибо лень. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
![]()
|
| Правила форума "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. |