|
475 / 294 / 29
Регистрация: 01.06.2018
Сообщений: 3,676
|
||||||
Поиск "рисунка" бит во входном файле19.02.2019, 12:18. Показов 634. Ответов 3
Метки нет (Все метки)
Те кто в курсе помнят какой фигнёй я сейчас занят. В продолжение работы с битами появилась идея сделать программу, которая сканирует указанный файл и все последовательные 512 байт объединяет в матрицу 64х64 бита. В такой матрице требуется найти определенные рисунки, например такие
0010 1000 0001 0100 причем значащими для поиска являются только 1 и нули в "зеркальных" позициях, то есть 0100 0001 1000 0010 своеобразное колечко с определенными позициями 1 и 0. Черные позиции битов могут иметь любое значение и игнорируются. Так как в 64х64 таких "колечек" может быть уйма в одной матрице, то нужно считать их количество и в выходной файл писать статистику, например шестнадцатиричное смещение в файле матрицы (адрес 512-байтного блока) и перечень таких вот аномалий с количеством. Например вот в таком виде:
В целом интересны рекомендации по тому, как организовать отображение этих рисунков. чтобы при необходимости можно было легко добавлять новые. Причем рисунок может быть разной формы и состоять из разного числа бит. На данный момент есть небольшие из 4 и 6 бит. Мои предложения: 1) Держать битовую маску и накладывать её на разные позиции: ++ вероятно быстрые операции над битами -- представление маски разноразмерной матрицей 2) Массивы относительных координат значащих 1 и 0 ++ простота добавления новых -- наверное операции с BitArray
0
|
||||||
| 19.02.2019, 12:18 | |
|
Ответы с готовыми решениями:
3
Поиск анаграмм во входном файле Задача Pascal ABC. Во входном файле дан массив А и массив из элементов которых будет осуществляться поиск в массиве А |
|
475 / 294 / 29
Регистрация: 01.06.2018
Сообщений: 3,676
|
|||||||||||
| 21.02.2019, 08:17 [ТС] | |||||||||||
|
В общем сделал первый вариант. Кому интересно могут подсказать как и что можно сделать лучше или иначе.
Кроме кода в сообщении прикладываю сам проект. В теле указываете путь к существующему файлу для сканирования. Используется сторонний модуль для рисования прогресса выполнения, кому не нравится могут легко его вырезать совсем. Файлы размером 10-20 мегабайт на моём ПК сканируются за 30 секунд, так что гигабайтные файлы этому коду не скармливайте. Чтение с диска идёт блоками по 512 байт (4096 бит = 64х64), операции по поиску проверяют каждый бит отдельно. Так же в архиве с проектом есть файл test2.txt размером в 512 байт и готовым шаблоном для проверки, результат работы программы должен давать 1 блок и 1 совпадение. Основной код:
0
|
|||||||||||
|
475 / 294 / 29
Регистрация: 01.06.2018
Сообщений: 3,676
|
|
| 21.02.2019, 12:39 [ТС] | |
|
Небольшие изменения. Добавил For() для многопроцессорности, косметические изменения - для ProgressBar добавил отображение размера файла, в конце показывается время выполнения.
Ещё было бы интересно сделать отображение времени оставшегося до конца работы. Интересует не просто деление на отрезки, а именно регулярный расчет, например начиная с 10-го блока. Чтобы было похоже на то, как отображается такое время например в FAR при копировании.
0
|
|
|
475 / 294 / 29
Регистрация: 01.06.2018
Сообщений: 3,676
|
||
| 21.02.2019, 13:28 [ТС] | ||
|
Хэшем может быть последовательность бит, например для рисунка выше 8 бит дают 1 байт и как раз байты потом и сравнивать, точнее группировать. Число элементов в группе и будет искомым значением.
0
|
||
| 21.02.2019, 13:28 | |
|
Помогаю со студенческими работами здесь
4
Русский язык в входном файле RESOURCE_LIMIT - Во входном файле недопустимый символ 0 Если во входном файле 69, то в выходной выводит f(66) Во входном файле подсчитать количество символов
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|