Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
ГеннадийВ
0 / 0 / 0
Регистрация: 23.08.2013
Сообщений: 34
#1

Как считывать дибайты в таких типах файлов как, .png, .txt, .bgi и так далее - C++

27.03.2014, 19:19. Просмотров 439. Ответов 4
Метки нет (Все метки)

Как считывать дибайты в таких типах файлов как, .png, .txt, .bgi и так далее.

пишу:
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
const unsigned int constant = 65535;
unsigned int countDB = 0;
int arrayDB[constant + 1];
 
ifstream in(input, ios::binary);
    in.read(buffer, 1);
 
    while (!in.eof())
    {
        countDB++;
        if (x == 0)
        {
            x = x + buffer[0];
            x = x << 8;
            in.read(buffer, 1);
        }
        else
        {
            x = x + buffer[0];
            arrayDB[x]++;
            x = x << 8;
            in.read(buffer, 1);
        }
    }
    countDB = countDB - 1;
    in.close();
но это работает только для текстовый файлом, как быть с другими типами?
 Комментарий модератора 
Не забывайте теги форматирования кода
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.03.2014, 19:19
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как считывать дибайты в таких типах файлов как, .png, .txt, .bgi и так далее (C++):

Как сделать так что я мог умножать не на два числа а на 3,4,5 и так далее?
Вот код: #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; int...

Как считывать инфу сразу с двух файлов?
Задача: в конечный файл записать слова из двух других файлов, где слова будут...

Объединение нескольких png файлов в один png-файл
В общем надо написать програмулину, которая объединяет несколько png файлов...

Как можно поместить данные в txt файл, и как их оттуда считывать??
как можно поместить данные в txt файл? и как их оттуда считывать??

Нужно заменить все слова 'так как', 'и тому подобное', 'то есть', 'и так далее' их аббревиатурами
Заменить все сочетания «то есть», «так как», «и так далее», «и тому подобное»...

Как считывать информацию с txt-файла
Имеется string level = { &quot;Аллея&quot;, &quot;аккуратный&quot;, &quot;абрикос&quot;,...

4
mustimur
268 / 222 / 72
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
27.03.2014, 19:38 #2
Цитата Сообщение от ГеннадийВ Посмотреть сообщение
но это работает только для текстовый файлом, как быть с другими типами?
Дайте весь код... Посмотреть (опробовать), но Ваше утверждение смущает. Она либо работает везде либо нигде..
0
ГеннадийВ
0 / 0 / 0
Регистрация: 23.08.2013
Сообщений: 34
27.03.2014, 21:14  [ТС] #3
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
void ReadDiBytes(string input)
{
       const unsigned int constant = 65535;
       unsigned int countBD = 0;
       int arrayBD[constant + 1];
    short int x = 0;
    char buffer[1];
    ifstream in(input, ios::binary);
    in.read(buffer, 1);
 
    while (!in.eof())
    {
        countBD++;
        if (x == 0)
        {
            x = x + buffer[0];
            x = x << 8;
            in.read(buffer, 1);
        }
        else
        {
            x = x + buffer[0];
            arrayBD[x]++;
            x = x << 8;
            in.read(buffer, 1);
        }
    }
    countBD = countBD - 1;
    in.close();
}
когда открываю файл(не .txt) переменная х получает значение отрицательное
0
mustimur
268 / 222 / 72
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
28.03.2014, 12:10 #4
Что, то не то, идею не понимаю, считываем по байту и сдвиг бинарный тоже на байт....
0
ГеннадийВ
0 / 0 / 0
Регистрация: 23.08.2013
Сообщений: 34
28.03.2014, 20:48  [ТС] #5
считываем байт и записываем в х, далее считываем второй байт и записываем также в х, в итоге получается один дибайт. Проблему решил, тема закрыта. Кому интересно, нужно было записать unsigned short int x = 0.
0
28.03.2014, 20:48
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.03.2014, 20:48
Привет! Вот еще темы с решениями:

Как создаются кнопки, метки, поля и так далее?
Доброго времени суток. Хотелось бы узнать как делаются те или иные элементы...

Как считывать кириллицу из файлов?
Как считывать кириллицу из файлов?

Как считывать свойства файлов в C++ Builder?
Срочно нужна помощь! Как считывать свойства файлов (значения тегов для mp-3...

На чем создаются сайты как fl.ru freelance.com и так далее. Ну в общем для фрилансеров?
Я сам хочу создать такой сайт. Не знаю на чем...:( Можно ли на движке создать?...


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

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

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