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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
TheCore
Заблокирован
#1

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

18.02.2016, 12:05. Просмотров 187. Ответов 0
Метки нет (Все метки)

Привет форумчане!
Интересно ваше мнение, есть какой - то хитрый и быстрый способ поиска последовательности байт в файле?
Тип файла (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
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.02.2016, 12:05
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Поиск экстремально быстрой техники поиска последовательности байт в файле! (C++):

Отображение файла в память, поиск и замена последовательности байт - C++
В общем, задача такая: спроецировать файл в память, найти последовательность байт, заменить её и записать изменения в файл. Вот, что я...

Посчитать в файле количество нулевых байт и различных байт - C++
Посчитать в файле кол-во нулевых байт и различных байт Кто решит буду весьма благодарен!:drink:

Поиск строк в файле методами бинарного поиска и перебора - C++
Массив длины 15 заполнен строками, упорядоченными лексикографически 1 без повторов: список зарегистрированных посетителей ...

Поиск наибольшей последовательности цифр в файле - C++
Во входном файле in.txt содержится последовательность цифр от 0 до 9, например: 1 4 4 4 3 3 2 2 2 2 4 3 3 3 0 0 0 0 1 2 3 5 1 1 1 1 1...

Поиск в файле заданной последовательности символов - C++
Друзья, помогите плиз!!! Нужно написать программу поиска в файле заданной последовательности символов не превышающей по длине 10 знаков....

Поиск заданной последовательности символов в бинарном файле - C++
Допустим в файле написано "raz dva tri dva raz raz dva". Нужно произвести поиск и подсчёт введёной пользователем последовательности...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.02.2016, 12:05
Привет! Вот еще темы с ответами:

Сортировка последовательности методом быстрой сортировки - C++
помогите :Написати програму для сортування послідовності 45 37 2 5 9 12 6 4 52 методом швидкого сортування. На кожному кроці виводити...

Поиска в записанном ранее файле по фамилии или по группе с выбором параметра поиска - C++
Нужно написать код для поиска в записанном ранее файле по фамилии или по группе с выбором параметра поиска. Помогите пожайлуйста, потому...

Поиск самой быстрой сортировки - C++
Ищу быструю реализацию быстрого алгоритма сортировки массива для среднего случая на С/С++ под Win32. Остальные параметры не имеют значения....

Байт в биты в файле - C++
Нашёл такую реализацию(вроде бы реализацию, я сам не знаю как она работает) превращения байта символа в биты. Но не могу понять, как собой...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru