Поиск шаблона в большом двоичном файле с использованием C или C ++?

У меня есть двоичный файл размером ~ 700 МБ (нетекстовые данные); то, что я хотел бы сделать, - это поиск определенного шаблона байтов, который встречается в случайных местах по всему файлу. например, 0x? 0x? 0x55 0x? 0x? 0x55 0x? 0x? 0x55 0x? 0x? 0x55 и так далее примерно для 50 байтов подряд. Шаблон, который я буду искать, будет представлять собой последовательность из двух случайных байтов с 0x55, встречающуюся каждые два байта.

То есть поиск таблиц, хранящихся в файле с 0x55 в качестве разделителя, а затем сохранение данных, содержащихся в таблицах или иным образом манипулировать им.

Было бы лучше всего просто просмотреть каждый отдельный байт по одному, а затем заглянуть вперед на два байта, чтобы увидеть, равно ли значение 0x55, и если да, затем снова и снова заглядывая вперед, чтобы убедиться, что таблица существует в этом месте?

Загрузить все? fseek? Буферные фрагменты, поиск в них по одному байту?

Как лучше всего просмотреть этот большой файл и найти шаблон с помощью C или C ++?

5
задан Kyle Lowry 18 February 2011 в 22:35
поделиться