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

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

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

Ответить
hea007
незнакомец
Сообщения: 1
Зарегистрирован: 02.12.2010 09:50:51

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

Сообщение hea007 »

Как осушествлять поиск по бинарному файлу конкретную последователность значений байтов в HEX представлении с целью установки позиции в файле?
Odyssey
энтузиаст
Сообщения: 580
Зарегистрирован: 29.11.2007 16:32:24

Сообщение Odyssey »

Искать по файлу первый байт, за ним второй и т.д. Если второй и т.д. не совпадает, то искать следующий первый. Для чтения очередного байта можно использовать TFileStream.Read или ReadBuffer. Если файл небольшой, имеет смысл загрузить его в память через TMemoryStream.LoadFromFile и искать уже в MemoryStream'е.
alexrayne
постоялец
Сообщения: 125
Зарегистрирован: 03.12.2008 15:56:26

Сообщение alexrayne »

есть более быстрые методы поиска подстроки в строке. они давно и хорошо проработаны. наверняка в RTL фрюхи они и используются в функции Pos.
Odyssey
энтузиаст
Сообщения: 580
Зарегистрирован: 29.11.2007 16:32:24

Сообщение Odyssey »

Точно, я привёл наивный алгоритм -- самый тормозной, но при этом самый простой. Если нужно что-то пошустрее, можно посмотреть например в википедии.
Ответить