Спасибо за ответ. Очень интересный алгоритм.
Здравствуйте TSS, Вы писали:
TSS>Здравствуйте rzhitn, Вы писали:
R>>Здравствуйте TSS, Вы писали:
TSS>>>Тогда просто ищи оптимальный алгоритм поиска, где-то у меня есть один, чем больше кусок "паттерна", тем быстрее ищет...
R>>Если можно, кинь на e-mail етот алгоритм а то как-то изобретать велосипед не хочется
TSS>Зачем на мыло. Вот он:
TSS>--- cut ---
TSS>TSS>/////////////////////////////////////////////////////////////////////////////
TSS>// QSearch ()
TSS>// Where = QSearch (pWhere, cbWhere, pWhat, cbWhat)
TSS>//
TSS>LPBYTE QSearch (LPBYTE s, INT n, LPBYTE p, INT m)
TSS>{
TSS> _ASSERTE (m < 256);
TSS> if (m > n)
TSS> return NULL;
TSS> BYTE d[256]; memset(d, m, 256);
TSS> for (int j = 0; j < m - 1; j++)
TSS> d[p[j]] = m - j - 1;
TSS> for (int i = m; i < n; i += d[s[i-1]])
TSS> {
TSS> int j = m, k = i;
TSS> do
TSS> {
TSS> if (--j < 0)
TSS> return (s + k);
TSS> --k;
TSS> }
TSS> while (p[j] == s[k]);
TSS> _ASSERTE(j >= 0);
TSS> }
TSS> return (NULL);
TSS>
TSS>} // QSearch
TSS>
TSS>--- cut ---
TSS>Ограничения: Паттерн не более 256 байт. Заголовки фреймов MPEG-2, надеюсь, прикрутишь сам...
TSS>P.S. Кста, в свое время мне этот код подкинул Alex Fedotov...
TSS>P.P.S. 2Alex Fedotov: дело твое живет и процветает ...