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

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

Войти
Регистрация
Восстановить пароль
 
ГеннадийВ
0 / 0 / 0
Регистрация: 23.08.2013
Сообщений: 34
#1

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

27.03.2014, 19:19. Просмотров 397. Ответов 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();
но это работает только для текстовый файлом, как быть с другими типами?
 Комментарий модератора 
Не забывайте теги форматирования кода
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.03.2014, 19:19     Как считывать дибайты в таких типах файлов как, .png, .txt, .bgi и так далее
Посмотрите здесь:

Как записать драйвер egavga.bgi в exe файл на С++ C++
Как считывать данные из файла? C++
Из файла .txt записать в этот массив символы, так же как они записаны в файле C++
Как считывать строку с пробелами? C++
C++ Как нарисовать рисунок (BGI)
Как записывать в txt-файл определенные строки из xml-файлов? C++
C++ Как считывать данные из строки?
Как считывать матрицу из файла? C++
Как сделать так чтобы программа открывала txt файл? C++
Как вычислять факториал таких больших чисел, как 1000 C++
C++ Как считывать инфу сразу с двух файлов?
C++ поменять местами первый и последний элемент, второй и предпоследний и так далее

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
27.03.2014, 19:38     Как считывать дибайты в таких типах файлов как, .png, .txt, .bgi и так далее #2
Цитата Сообщение от ГеннадийВ Посмотреть сообщение
но это работает только для текстовый файлом, как быть с другими типами?
Дайте весь код... Посмотреть (опробовать), но Ваше утверждение смущает. Она либо работает везде либо нигде..
ГеннадийВ
0 / 0 / 0
Регистрация: 23.08.2013
Сообщений: 34
27.03.2014, 21:14  [ТС]     Как считывать дибайты в таких типах файлов как, .png, .txt, .bgi и так далее #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) переменная х получает значение отрицательное
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
28.03.2014, 12:10     Как считывать дибайты в таких типах файлов как, .png, .txt, .bgi и так далее #4
Что, то не то, идею не понимаю, считываем по байту и сдвиг бинарный тоже на байт....
ГеннадийВ
0 / 0 / 0
Регистрация: 23.08.2013
Сообщений: 34
28.03.2014, 20:48  [ТС]     Как считывать дибайты в таких типах файлов как, .png, .txt, .bgi и так далее #5
считываем байт и записываем в х, далее считываем второй байт и записываем также в х, в итоге получается один дибайт. Проблему решил, тема закрыта. Кому интересно, нужно было записать unsigned short int x = 0.
Yandex
Объявления
28.03.2014, 20:48     Как считывать дибайты в таких типах файлов как, .png, .txt, .bgi и так далее
Ответ Создать тему
Опции темы

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