Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 62, средняя оценка - 4.81
one050704
1 / 1 / 0
Регистрация: 02.06.2009
Сообщений: 104
#1

Конвертировать bmp файл в txt - C++

27.07.2010, 19:29. Просмотров 8272. Ответов 24
Метки нет (Все метки)

Необходимо написать программу для конвертации монохромного bmp файла, в файл txt, где содержимое будет в виде ascii кодов в 16- ричном виде.
В-общем думается для начала открыть bmp файл для чтения, читать побитно, открыть для записи txt файл, каждый бит bmp менять на ascii коды в hex формате и записать все это в txt. Господа формучане, как думаете это есть верный алгоритм?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.07.2010, 19:29
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Конвертировать bmp файл в txt (C++):

В папке К2 создайте файл t3.txt, в который перепишите вначале текст из файла t1.txt, а затем из t2.txt - C++
Программным путем: 1. В папке С:\temp создайте папки К1 и К2. 2. В папке К1: a) создайте файл t1.txt, в который запишите следующий...

Переписать все числа из файлов 1.txt и 2.txt в файл 3.txt - C++
Здравствуйте! Нужна помощь. Есть два текстовых файла 1.txt и 2.txt в них есть числа. реализовать консольное приложение которое...

Найти минимальное и максимальное числа из input.txt и записать его в файл output.txt - C++
Еще раз приветствую дорогие программисты.Надеюсь на вашу помощь. Найти минимальное и максимальное числа из input.txt и записать его в...

Считать 10 целых чисел с файла 1.txt и записать в файл 2.txt максимальный элемент и его индекс - C++
нужно считать 10 целых чисел с файла 1.txt и записать в файл 2.txt максимальный элемент и его индекс я начала делать, но в файл 2.txt...

Исправить программу, чтоб считывала текст из файла Input.txt и выводит в файл Output.txt - C++
Даны координаты центра и радиус R окружности, координаты точки. Найти точки пересечения касательных с окружностью input.txt 1 1 1 2 2...

Переписать данные файла input.txt в файл output.txt, отсортировать их в алфавитном порядке по фамилии - C++
Народ меня тут 11 задач мне нужно их подробно прокомментировать какая строчка что делает(пример первая задача) помогите плиз кому не...

24
one050704
1 / 1 / 0
Регистрация: 02.06.2009
Сообщений: 104
28.07.2010, 09:01  [ТС] #16
Вот что у меня пока получилось(только не смейтесь), не могу понять, как завести цикл, для записи в файл?

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
#include <stdlib.h>
 
int main(void)
{
int i;
char *d;
  FILE *fp;
  FILE *f;
  if((f=fopen("pic.bmp", "wb+"))==NULL)
  {
    printf("Cannot able to open file \n");
    return 0;
  }
 
  f=fopen("pic.bmp","rb");
  fp=fopen("text.txt", "wb");
  d=&f;
  for(d=0;d!='\0';d++)
    fprintf(fp,"%x",d);
  fclose(fp);
  fclose(f);
  }
0
D@rkD@iver
111 / 111 / 3
Регистрация: 01.10.2008
Сообщений: 876
28.07.2010, 09:12 #17
one050704, нее у тебя тут код совсем неправильный
C++
1
if((f=fopen("pic.bmp", "wb+"))==NULL)
во первых ты уже открыл файл, причем даже стер его

C++
1
if((f=fopen("pic.bmp", "rb"))==NULL)
напиши вот так, а второй раз этот файл не надо открывать


считывается с файла так
C++
1
2
3
int n;
while (n=fgetc(f)!= EOF)
    fprintf(fp, "%X", n);
файл для записи открывай как текстовый
C++
1
fp=fopen("text.txt", "w");
1
one050704
1 / 1 / 0
Регистрация: 02.06.2009
Сообщений: 104
28.07.2010, 14:53  [ТС] #18
one050704, нее у тебя тут код совсем неправильный
считывается с файла так
C++
1
2
3
int n;
while (n=fgetc(f)!= EOF)
    fprintf(fp, "%X", n);
круто, работает, но выдает одни только еденички(11111...). С чем это может быть связано?

Добавлено через 5 часов 1 минуту
Цитата Сообщение от D@rkD@iver Посмотреть сообщение
one050704, а вы знаете что bmp файл состоит не только из описания пикселей
у него еще есть заголовки
поищите в интернете "Структура bmp файла"
а если вам нужно весь файл(включая заголовки), то да берете по байту пока не EOF и сразу переводите в hex
D@rkD@iver, а если не весь файл, заголовок файла сохранить оставить, а палитру конвертировать. Для начала думаю хотя бы объявить заголовок в виде структуры. А вот что потом...?
0
D@rkD@iver
111 / 111 / 3
Регистрация: 01.10.2008
Сообщений: 876
28.07.2010, 14:55 #19
one050704, что-то я тебя не совсем понял... поясни
0
kravam
быдлокодер
1700 / 887 / 45
Регистрация: 04.06.2008
Сообщений: 5,498
29.07.2010, 09:29 #20
Цитата Сообщение от D@rkD@iver Посмотреть сообщение
нафиг ему твой готовый код? только в рамку вставить и на стенку повесить
При всём уважении не могу согласиться.

Изучить чужой код- суть написать свой. Я так учился в том числе.

Вот готовый проект кому надо. Сперва ознакомиться с файлом "Текустовый документ"
0
gpunk
10.09.2011, 02:31 #21
Цитата Сообщение от kravam Посмотреть сообщение
Вот готовый проект кому надо.
а чем можно скомпиллировать исходник без ошибок? (надо изменить программку немного). у меня Open Watcom C/C++ Version 1.7. При попытке тупо вставить код и скомпиллировать выдает кучу ошибок(
andrejf92
17 / 0 / 1
Регистрация: 15.11.2012
Сообщений: 29
20.11.2012, 18:50 #22
Цитата Сообщение от Nameless One Посмотреть сообщение
каждый бит bmp менять на ascii коды в hex формате
А как это в моей проге реализовать?
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
36
37
38
39
40
41
42
#pragma argsused
#include <cstdio.h>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
//#include <iostream>
int main()
{
    //Создаёт указатель на файл
    FILE *in;
    FILE *out;
    char ch;
    //Открывает бинарный файл для чтения  и записи
    //и возвращает ошибку если файл не открыт
    if ((in = fopen("d:\\Test.bmp", "rb"))==NULL) {
        printf("Imposible open file in\n");
        getch();
        exit(1);
    }
    else {
        printf("File open in\n");
    }
    if ((out = fopen("d:\\Test.txt", "wb"))==NULL) {
        printf("Imposible open file uot\n");
        getch();
        exit(1);
    }
    else {
        printf("File open out\n");
    }
    //Считывает символ и копирует пока не достигнут конец файла
    while(!feof(in)){
        ch=getc(in);
        dynamic_cast<int>(ch);
        putc(ch, out);
    }
    //Закрывает файл
    fclose(in);
    fclose(out);
    getch();
    return 0;
}
Добавлено через 7 минут
А как это в моей проге реализовать?
Ведь я не использовал ООП и мне не подойдёт
C++
1
 ofs << "0x" << std::hex << static_cast<int>(ch) << " ";
0
KnightShadow
0 / 0 / 0
Регистрация: 02.03.2015
Сообщений: 2
11.05.2015, 12:15 #23
Вот готовый проект кому надо. Сперва ознакомиться с файлом "Текустовый документ"
Вложения
Тип файла: rar Как файл преобразовать в текстовый но с шестнадцатиричными значниями вместо букв.rar (12.7 Кб, 118 просмотров)
Программа работает не правильно при больших размерах изображений.
0
kravam
быдлокодер
1700 / 887 / 45
Регистрация: 04.06.2008
Сообщений: 5,498
14.05.2015, 21:45 #24
Цитата Сообщение от KnightShadow Посмотреть сообщение
Программа работает не правильно при больших размерах изображений.
изображения и ошибки в студию
0
KnightShadow
0 / 0 / 0
Регистрация: 02.03.2015
Сообщений: 2
16.05.2015, 20:40 #25
Цитата Сообщение от kravam Посмотреть сообщение
Сообщение от KnightShadow
Программа работает не правильно при больших размерах изображений.
изображения и ошибки в студию
Извиняюсь, не сразу понял, что длина растрового массива кратна четырем байт. (Изначально думал, что разделитель между строками размера три байта )
0
16.05.2015, 20:40
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.05.2015, 20:40
Привет! Вот еще темы с ответами:

отладить программу на языке С++, которая считывает из файла a.txt строку и записывает её в файл b.txt в обратном порядке - C++
я это взяла из книги полностью готовый код, а он не идёт.Помогите отладить, пожалуйста #include &lt;string.h&gt; #include &lt;stdlib.h&gt; ...

Прочитать txt и записать в другой txt файл - C++
Вот у меня например текстовый файл(Это 1 задание, осилил как-то), туда записан список студентов., мне нужно его прочитать (уже 2 задание)и...

В файле input.txt содержатся сведения о группе студентов. переписать данные файла в файл output.txt, отсортировав их по возрастанию - C++
Добрый вечер!!! Я - новичок по работе с С++, помогите, пожалуйста, написать программу на этом языке. В файле input.txt содержатся сведения...

Сформировать из файла f4.txt файл g.txt - C++
Сформировать из файла f4.txt файл g.txt, состоящий из целых чисел, но для нечётных чисел указать также их значение английским словом 1...


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

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

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