Форум программистов, компьютерный форум CyberForum.ru

Поиск экстремально быстрой техники поиска последовательности байт в файле! - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как найти самое длинное слово в сообщении? http://www.cyberforum.ru/cpp-beginners/thread1665087.html
Найти самое длинное слово в сообщении C++ можно с обьяснениями пожалуйста
C++ Объект класса string не является однозначным Вот ошибка: Ошибка 1 error C2872: left: неоднозначный символ c:\users\м\desktop\documents\visual studio 2013\projects\млита\млита\метод вонга.cpp 33 1 МЛиТА и таких около 100 штук где используется два объекта left and right. Вчера успешно закрыл программу после тестирования пару примеров. Сегодня открыл вот эта жуть. http://www.cyberforum.ru/cpp-beginners/thread1665063.html
C++ Подсчитать количество цифр числа, используя целочисленное деление
Составьте программу, подсчитывающую количество цифр вводимого вами целого неотрицательного числа.можно использовать операцию целочисленного деления
Найти и распечатать все совершенные числа в заданном интервале C++
Чтсло равное сумме всех своих делителей,включая единицу,называется совершенным. Найти и распечатать все совершенные числа в интервале от двух до x
C++ Сколько времени понадобится экспедиции, чтобы достичь высоты 4200м? http://www.cyberforum.ru/cpp-beginners/thread1664994.html
Экспедиция начинает восхождение на Эверест с высоты 3000 м с начальной скоростью 200 м/ч. Известно, что через каждые 100 м скорость подъема уменьшается на 10% от скорости за предыдущие 100 м. Сколько времени понадобится экспедиции, чтобы достичь высоты 4200м? вот сам код #include <iostream> #include <cstdlib> #include <math.h> using namespace std; int main() { int Height = 3000;
C++ Класс с непустым деструктором Доброго времени суток. Необходимо создать класс, который должен содержать освобождающий занятые классом ресурсы. Вот такое я написал: headphone.h #pragma once namespace Program { подробнее

Показать сообщение отдельно
TheCore
Заблокирован
18.02.2016, 12:05     Поиск экстремально быстрой техники поиска последовательности байт в файле!
Привет форумчане!
Интересно ваше мнение, есть какой - то хитрый и быстрый способ поиска последовательности байт в файле?
Тип файла (exe, rar, wav, bmp) и тд заранее не известен.
1. Я предполагаю, что для поиска, допустим, последовательности байт "AD FD FF CD" в файле мне нужно просто открыть файл и с самого начала и проверить, не та ли комбинация находится у старта, если нет - тупо сдвигать на один байт вправо и проверить опять, пока не дойду до конца. Так вот, единственный ли этот метод или есть какие - то супер крутые и алгоритмично продвинутые? Ну не знаю, может заимствованные из архивирования?

2. И второй вопрос. Как быстрее это сделать, если учесть, что размер оперативной памяти достаточно велик по сравнению с вероятными размерами файлов.
а) Загрузить файл целиком в память одним куском?
б) Чисто работать с файловым потоком без явной загрузки всего файла в память?

3. Есть ли профит от кучи потоков для одновременной проверки сразу многих файлов? Допустим в папке 10 файлов, если я запущу 10 потоков и буду в каждом потоке буду по одному отдельному файлу проверять, будет ли от этого профит с учётом (ОС - Windows 8.1)
a) HDD + вариант из предыдущего вопроса 2.а
б) HDD + вариант из предыдущего вопроса 2.б
в) SSD + вариант из предыдущего вопроса 2.а
г) SSD + вариант из предыдущего вопроса 2.б

3.1.Правильно ли я понимаю, что если файл мелкие, то в потоках нет смыла, т.к. на старт потока уйдёт больше времени, чем просто прочитать этот файл
3.2 Если файлы большие, то в потоках есть резон я так полагаю?
3.3 А если размер файла заранее не известен и скорее всего файлы в папке смешанного размера, то есть и большие и маленькие, тогда смыл в потоках есть?

Добавлено через 2 часа 5 минут
Ладно, в общем - то разобрался, кому интересно, лучший метод всё таки наверное - КМП, так же можно использовать strstr
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru