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

C++

Войти
Регистрация
Восстановить пароль
 
Viktor St.
3 / 3 / 1
Регистрация: 05.12.2009
Сообщений: 16
#1

Как осуществить Обработку бинарного файла? - C++

15.01.2010, 17:48. Просмотров 483. Ответов 3
Метки нет (Все метки)

Файл содержит произвольные данные. Определить, встречается ли в файле определенная
последовательность байт (заданных виде массива символов). Если встречается, то вывести
на экран все смещения, где эта последовательность встречается.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.01.2010, 17:48     Как осуществить Обработку бинарного файла?
Посмотрите здесь:

Предусмотреть в программе просмотр бинарного файла и выполнить его обработку - C++
Имеется информация о телевизорах на складе: наименование, фирма изготовитель, стоимость, размер экрана, количество на складе. Для описания...

Как считать из бинарного файла - C++
Здравствуйте, я написала процедуру считывания из бинарного файла, но в результате выводится непонятный набор букв. Как сделать что бы...

Как удалить структуру из бинарного файла - C++
Разработать программу на С++, позволяющую: 1) Добавлять данные структуры с указанными полями в файл.(выполнил) 2) Просматривать...

Как записывать и читать с БИНАРНОГО файла - C++
доброго времени суток. вопрос такой. есть программа, игра на которой есть игрок, враг, ловушки, и клад. игроку надо пройти ко кладу...

Как восстановить список из бинарного файла? - C++
Помогите написать функцию восстановления списка из бинарного файла (желательно двумя способами: и использованием стандартной библиотеки С...

Как считать числа из бинарного файла - C++
Стоит задача: записать простые числа в бинарный файл. Числа берутся из промежутка 1...n. Все сделал, но не получается вывести в консоль...

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

Как осуществить чтение файла и подсчет строк? - C++
видимо на форуме уже обсуждалась такая тема,но я все такие не смог найти то что мне надо,так что заранее извиняюсь за то что поворяю...

Как считать из бинарного файла AnsiString (ifstream)? - C++
ifstream read("Edit1.txt",std::ios::binary); int Size; read.read((char*)&Size,sizeof(int)); AnsiString str; ...

Как посмотреть содержимое бинарного файла в терминале? - C++ Linux
Доброго времени суток. Взялся читать один незамысловатый блог, в статье после основ рассказывается про процесс компиляции. Показано, как...

Как прочитать из бинарного файла тип НЕ *char - C++
Понимаю, что ответ где-то на поверхности, но я уже задолбался искать. Гугл и все справочники, в которых я читал о функции read, приводят...

Как правильно осуществить запись с файла в stringstream и обратно? - C++
Есть программа, которая должна осуществлять открытие не пустого текстового файла, далее содержимое файла должно шифроваться, после...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CheshireCat
Эксперт С++
2892 / 1241 / 78
Регистрация: 27.05.2008
Сообщений: 3,353
15.01.2010, 18:13     Как осуществить Обработку бинарного файла? #2
А в чем проблема-то? Если файл меньше 2 Гбайт, то все просто:
1. спроецировать файл в память,
2. любым алгоритмом последовательно поискать в проекции заданную подпоследовательность байт, например, алгоритмом Бойера-Мура (ну или любым другим, как заблагорассудится).... Если нашли - выводим смещение и ищем дальше.
Все, как будто.....
Viktor St.
3 / 3 / 1
Регистрация: 05.12.2009
Сообщений: 16
15.01.2010, 18:33  [ТС]     Как осуществить Обработку бинарного файла? #3
Да я новичок ещё ("чайник")! Мне бы код глянуть!
insideone
Модератор
Автор FAQ
3636 / 914 / 49
Регистрация: 10.01.2010
Сообщений: 2,464
15.01.2010, 20:35     Как осуществить Обработку бинарного файла? #4
Если предположить что мы считали файл в массив символов FileChars то остается написать так
C++
1
2
3
4
5
6
7
8
char Search[X] = { /* какая то последовательность которую ищем */ };
char CurBlock[X] = {0};
for (int i = 0; i < последний_байт_файла; i++)
{
   memcpy(&CurBlock[0], &FileChars[i], X); // копируем текущий блок для сравнения
   if ( memcmp(&CurBlock[0], &Search[0], X) == ) // сравниваем текущий блок с тем что ищем
       / * тут вывод о том что по смещению i найдено совпадение */
}
Как считывать файлы я думаю обсуждалось, особо не шарю...
Yandex
Объявления
15.01.2010, 20:35     Как осуществить Обработку бинарного файла?
Ответ Создать тему
Опции темы

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