Поиск по бинарному файлу?

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Поиск по бинарному файлу?

Сообщение hea007 » 02.12.2010 11:04:45

Как осушествлять поиск по бинарному файлу конкретную последователность значений байтов в HEX представлении с целью установки позиции в файле?
hea007
незнакомец
 
Сообщения: 1
Зарегистрирован: 02.12.2010 10:50:51

Re: Поиск по бинарному файлу?

Сообщение Odyssey » 02.12.2010 17:14:38

Искать по файлу первый байт, за ним второй и т.д. Если второй и т.д. не совпадает, то искать следующий первый. Для чтения очередного байта можно использовать TFileStream.Read или ReadBuffer. Если файл небольшой, имеет смысл загрузить его в память через TMemoryStream.LoadFromFile и искать уже в MemoryStream'е.
Odyssey
энтузиаст
 
Сообщения: 580
Зарегистрирован: 29.11.2007 17:32:24

Re: Поиск по бинарному файлу?

Сообщение alexrayne » 03.12.2010 00:58:20

есть более быстрые методы поиска подстроки в строке. они давно и хорошо проработаны. наверняка в RTL фрюхи они и используются в функции Pos.
alexrayne
постоялец
 
Сообщения: 125
Зарегистрирован: 03.12.2008 16:56:26

Re: Поиск по бинарному файлу?

Сообщение Odyssey » 03.12.2010 01:28:19

Точно, я привёл наивный алгоритм -- самый тормозной, но при этом самый простой. Если нужно что-то пошустрее, можно посмотреть например в википедии.
Odyssey
энтузиаст
 
Сообщения: 580
Зарегистрирован: 29.11.2007 17:32:24


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 37

Рейтинг@Mail.ru