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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.80
stawerfar
141 / 55 / 4
Регистрация: 14.12.2010
Сообщений: 347
Записей в блоге: 1
#1

Чтение и запись *.doc,*.docx на диск - C++

22.03.2012, 21:32. Просмотров 3129. Ответов 6
Метки нет (Все метки)

Всем привет!!
У Лафоре очень хорошо объяснено и показано запись и считывание файлов с диска с файлами в форматах *.txt and *.dat.Но у меня задача стоит по другому. Мне необходимо считать уже существующий файл *.doc или *.docx совершить необходимые с данными манипуляции и снова записать на диск в существующий файл.Как это сделать, конечно проблем с считыванием не возникает на физическом уровне, т.е. файл считывается а при выводе на консоль например получается абракадабра.
Подскажите кто знает как решить данную проблему. Вот пример используемого мною кода:
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
#include <fstream>                //for file functions
#include <iostream>
using namespace std;
#include <process.h>              //for exit()
 
int main(int argc, char* argv[] )
   {
       setlocale(LC_ALL,"Russian_Russia.1251");
   if( argc != 2 )
      {
      cerr << "\nФормат команды: otype  имя_файла";
      exit(-1);
      }
 
   char ch;                       //character to read
   ifstream infile;               //create file for input
   infile.open( argv[1] );        //open file
   if( !infile )                  //check for errors
      {
      cerr << "\nНевозможно открыть " << argv[1];
      exit(-1);
      }
   setlocale(LC_ALL,"Russian_Russia.866");
   while( infile.get(ch) != 0 )   //read a character
      cout << ch;                 //display the character
   std::cout<<std::endl;
   system("pause");
   return 0;
   }
правда если сначала создать в блокноте текст а потом сохранить его в формате например *.doc то абрыкадабры пропадают. Но у меня так задача не стоит, мне нужно работать тупо с файлом созданным в word. В скрине ниже продемонстрирована работа программы с вызовом из консоли естественно, файлы file.doc,s.docx были созданы в блокноте и сохранены в нужном формате, а вот файл word.doc был создан изначально в MS Word, ну и результат на лицо
0
Миниатюры
Чтение и запись *.doc,*.docx на диск  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.03.2012, 21:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Чтение и запись *.doc,*.docx на диск (C++):

Чтение строк из файла .doc/.docx - C++
При считывании строк из доков, как я это делаю для .txt, выводятся непонятные символы. Как считывать из доков ?

Работа с *.doc и *.docx - C++
Здравствуйте. Как можно напрямую работать с файлами *.doc и *.docx вне зависимости от того, установлен ли Word или нет? Честно гуглил,...

Запись и чтение файлов на диск и с диска - C++
НАПИСАТЬ ДВЕ ПРОГРАММЫ 1) СОЗДАНИЯ ФАЙЛА С УКАЗАННЫМИ ПОЛЯМИ И 2) СЧИТЫВАНИЕ ДАННЫХ ИЗ ФАЙЛА И ВЫВОД НА ЭКРАН МОНИТОРА В ВИДЕ ТАБЛИЦЫ,...

Запись и чтение файлов на диск и с диска - C++
Добрый день,помогите пожалуйста составить две программы. 1)Создать файл с полями:Фамилия,№ экзаменационного билета,зачет\незачет. ...

Получить текст из .doc (НЕ DOCX) - C++
Необходимо достать текст из .doc файла и вывести на экран.Желательно что бы код работал в Qt. Спасибо за потраченное время. PS....

Возможно ли прочитать в консоль документ .docx или .doc, а также записать в том же формате? - C++
Возможно ли прочитать в консоль документ .docx или .doc, а также записать в том же формате? Если да, то как это сделать?

6
panicwassano
592 / 560 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
22.03.2012, 22:09 #2
setconsolecp(1251)
setconsoleoutputcp(1251)
из windows.h и сменить шрифт в консоли
1
villu
203 / 204 / 4
Регистрация: 06.08.2011
Сообщений: 600
Записей в блоге: 1
22.03.2012, 22:21 #3
doc нужно сначала распаковать )
1
stawerfar
141 / 55 / 4
Регистрация: 14.12.2010
Сообщений: 347
Записей в блоге: 1
22.03.2012, 22:30  [ТС] #4
Цитата Сообщение от panicwassano Посмотреть сообщение
setconsolecp(1251)
setconsoleoutputcp(1251)
из windows.h и сменить шрифт в консоли
Объясните мне как тупому пожалуйста!!

Добавлено через 1 минуту
Потому что я не совсем понимаю что нужно делать, тему прошёл вот вот и я ещё немного плаваю!!
0
Gepar
1177 / 533 / 20
Регистрация: 01.07.2009
Сообщений: 3,517
22.03.2012, 22:33 #5
Цитата Сообщение от stawerfar Посмотреть сообщение
Объясните мне как тупому пожалуйста!!
В открытой консоли в свойствах установи шрифт Lucida console.
1
villu
203 / 204 / 4
Регистрация: 06.08.2011
Сообщений: 600
Записей в блоге: 1
22.03.2012, 22:34 #6
Объясняю )
doc - это формат. Причем закрытый. Его нельзя просто так вот вывести на консоль. На это и намекают загадочные символы "РП", которые вывелись.
Чтоб это распаковать нужно либо писать свой парсер, либо пользоваться уже готовым.
docx это тоже запакованный формат. Но в отличие от первого - он открытый и более того представляет собой набор XML'ей зажатых архиватором. Опять же есть готовые инструменты для работы с форматом.
2
stawerfar
141 / 55 / 4
Регистрация: 14.12.2010
Сообщений: 347
Записей в блоге: 1
22.03.2012, 22:44  [ТС] #7
Ребята, большое спасибо Вам!!
0
22.03.2012, 22:44
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.03.2012, 22:44
Привет! Вот еще темы с ответами:

[Файлы] Запись-чтение-запись. Почему не прокатывает? - C++
Сначала записываю в файл &quot;а&quot; запись &quot;makulatura&quot;, потом читаю ее в строку h. Все ок. Но потом когда открываю файл &quot;a&quot; опять для записи с...

запись на диск - C++
составить программу, записывающую на диск файлы.

Чтение/запись - C++
какая буква в fopen, открывает файл на одновременное чтение/запись, причем если файл существует, то не стирает его

Чтение и запись - C++
Здравствуйте! Писал программку по чтению одного файла и записи данных первого во второй с измененным содержимым. Смысл таков - есть первый...


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

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

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