Я как-то реализовывал подобный алгоритм.
Делал примерно так.
1. Выделяется буфер длинной B+Length(Sample). B - базовый размер буфера, Sample - длинна искомых данных.
2. В цикле:
2.1. Чтаем в буфер данные
2.2. В цикле от 0 до Length(B) проверяем первый байт данных и Sample. Если совпадает, то начинаем сверять все отсальные байты Sample. Если все совпадает, то нашли нашу подстроку.
2.3. Смещаем указатель на файле на Length(Sample) байт назад и читаем новый блок данных.
|