Необходимо осуществить поиск последовательности БИТОВ (!) в бинарном файле! Но возникла такая проблема: последовательность не выравнена на байты, то есть допустим надо найти последовательность из 9 -ти битов. в С++ функция ReadFile требует адрес буфера в параметре lpBuffer, а как объявить указатель на 9 - ть бит На ассемблере тоже нет подобных команд, например цепочечные команды требуют определённой размерности элементов цепочки - байт, слово и т.д. Ребята помогите кто сможет, как бы решить эту проблему по проще! программа нужна буквально на 5 - 10 минут неохота чтото садиться за кодинг из - за этого на несколько месяцев, а то и так столько уже в жизни напрограммировал и лежит потом и неиспользуется!
А что мешает искать байт и проверять нужный 9-й бит в следующем байте, сдвигаясь при каждом шаге на 1 бит?
ну если программа нужна на 5 - 10 минут, напиши элементарную прогу преобразования bin -> text (т.е. чтоб текстовый файл выдала, типа 1001100111...), и ищи свои последовательности в любом текстовом редакторе.
Ну если на 5-10 минут, то только вот аттач. Код не мой, а был откуда-то нагло рипнут под частные нужды, причём вот уже и не припоминаю откуда.. _691426395__BitLib.zip
а можно расчитать все возможные байты из данных битов и сделать поиск с помошью regexp в худшем случае будет 2<sup>14</sup> вариантов это если бит скажем 10 то есть b=8*n+2 где n - количество целых байт а b - количество бит
> Код не мой, а был откуда-то нагло рипнут под частные > нужды, причём вот уже и не припоминаю откуда.. Могу напомнить - рипнут он был из JCALG1 Compression Library by Jeremy Collake (jcalg1_d.asm)
А какой максимальной длины последовательность? Если не больше 24 бит, то там весь "олгоритым" прост, как лопата, и укладывается в пару циклов с одинм AND, одним XOR и одним SHR внутри.
Спасибо всем!!! Особенное спасибо Azrael !!! Вы мне очень помогли! Помоему это единственный в своем роде нормальный сайт для программеров, где можно решать свои проблемы, а не нести флейм на "околопрограммистскую" тему. Вопрос CyberManiac-у почему "...если не больше 24 бит"?