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

Бинарный файл - C++

Восстановить пароль Регистрация
 
StronglovE
0 / 0 / 0
Регистрация: 15.04.2014
Сообщений: 4
15.04.2014, 10:32     Бинарный файл #1
Есть бинарный файл, заполненный числами в 16-ричной форме а также разного рода символами. Необходимо проверить есть ли сочетание FFFF, если есть подсчитать количество и вывести на экран.
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zelen
374 / 289 / 17
Регистрация: 10.07.2010
Сообщений: 767
Завершенные тесты: 2
15.04.2014, 11:06     Бинарный файл #2
FilleStrem и считывать байты, хоть блоками по 2 байта, хоть блоками кратными 2-ум) и если 2 байта равны 255 то это FFFF
StronglovE
0 / 0 / 0
Регистрация: 15.04.2014
Сообщений: 4
15.04.2014, 12:13  [ТС]     Бинарный файл #3
FileStream вроде для с#. Хотелось бы для C++ и для консольного приложения.
zelen
374 / 289 / 17
Регистрация: 10.07.2010
Сообщений: 767
Завершенные тесты: 2
15.04.2014, 12:32     Бинарный файл #4
опс извиняюсь)
newbie666
Заблокирован
15.04.2014, 12:44     Бинарный файл #5
ну открывай ты свой файл и ищи свои сочетания байтов при помощи std::fstreаm, в чём конкретно твоя проблема? в лени что ли?

Добавлено через 1 минуту
Цитата Сообщение от StronglovE Посмотреть сообщение
Есть бинарный файл, заполненный числами в 16-ричной форме
в бинарном файле вся информация в двоичном виде
StronglovE
0 / 0 / 0
Регистрация: 15.04.2014
Сообщений: 4
15.04.2014, 12:58  [ТС]     Бинарный файл #6
Мне не понятна сама реализация побайтного чтения и сравнения с искомым числом. Начал разбераться с С++ недавно, потму прошу не судить строго.

Добавлено через 38 секунд
Да.
OstapBender
 Аватар для OstapBender
581 / 519 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
15.04.2014, 13:31     Бинарный файл #7
StronglovE, я думаю проще всего прочитать файл целиком в буфер, дальше в цикле проверять каждую пару байт с искомым числом.

проверять можно, например, с помощью memcmp
newbie666
Заблокирован
15.04.2014, 13:42     Бинарный файл #8
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от StronglovE Посмотреть сообщение
Да.
что да? Лентяй?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <tchar.h>
#include <iostream>
#include <fstream>
#include <vector>
 
int _tmain(int argc, _TCHAR* argv[])
{   
    unsigned int matchesFound = 0;
    std::vector<char> oneItem;
    std::fstream fs(L"data.bin", std::ios::in | std::ios::binary);
    while (true)
    {
        char tmp;
        fs.read(&tmp, 1);
        if(fs.eof())
            break;
        if(tmp == (char)0xff)
        {
            oneItem.push_back(tmp);
            if(oneItem.size() == 2)
            {
                matchesFound++;
                oneItem.clear();
            }
        }
        else
            oneItem.clear();
    }
    fs.close();
 
    std::cout << "Number of '0xFFFF' matches found: " << matchesFound << std::endl;
    system("pause");
 
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.04.2014, 14:00     Бинарный файл
Еще ссылки по теме:

C++ Дозапись в бинарный файл
Бинарный файл C++
Бинарный файл C++

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

Или воспользуйтесь поиском по форуму:
StronglovE
0 / 0 / 0
Регистрация: 15.04.2014
Сообщений: 4
15.04.2014, 14:00  [ТС]     Бинарный файл #9
Спасибо, разобрался.
Yandex
Объявления
15.04.2014, 14:00     Бинарный файл
Ответ Создать тему
Опции темы

Текущее время: 10:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru