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

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

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

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

27.03.2014, 19:19. Просмотров 409. Ответов 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 и так далее (C++):

Как сделать так что я мог умножать не на два числа а на 3,4,5 и так далее? - C++
Вот код: #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; int main(){ float a,c; char b; skip: ...

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

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

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

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

Как создаются кнопки, метки, поля и так далее? - C++ WinAPI
Доброго времени суток. Хотелось бы узнать как делаются те или иные элементы WinAPI; А именно: Buttom, edit, label, MeinMenu, Memo,...

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

Как считывать кириллицу из файлов? - C (СИ)
Как считывать кириллицу из файлов?

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

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

Как организовать перебор png файлов из ресурса? - Visual Basic .NET
Помогите решить проблемму: Как можно организовать следующее: есть обьект picturebox, есть ресурс: изображение в виде PNG файла 1.png,...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
28.03.2014, 20:48
Ответ Создать тему
Опции темы

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