2013-05-05 1 views
0

все.Способ редактирования (чтение/запись текста) существующего файла .doc (MS Word) с C++ в Windows?

Мне нужно сделать приложение на C++, которое способно читать обычный текст из существующего .doc или .docx файла (MS Word) в Windows, а затем создать новый .doc или .docx файл и написать этот простой текст на него.

На самом деле, я должен зашифровать текст, прежде чем записывать его в новый файл, но сейчас часть приложения, о котором я беспокоюсь, является обработкой MS Word-файлов.

У вас есть какие-либо советы по этому поводу? Любой API или что-то, что я могу использовать?

Спасибо.

+0

У вас есть MS Word в среде, в которой будет работать программа? Если да, используйте COM/ActiveX API Word. –

+0

Спасибо, Док Браун. Знаете ли вы, что вы знаете какой-либо источник для примеров кодирования? – omar

+0

Ты не ответил на мой вопрос. Но предположим, что вы можете использовать MS Word для своей задачи, я предлагаю вам сначала начать изучать, как использовать COM/OLE/ActiveX с C++, например, здесь: http://www.tenouk.com/cplusmfcdotnet.html Остерегайтесь, это не новичков. Гораздо проще будет использовать, например, язык .NET, такой как C# или C++/CLI для материала Word, и позволить этому взаимодействовать с вашей программой на C++. –

ответ

0

Формат .doc и (в меньшей степени) .docx - это всего лишь немного очищенные дампы памяти Word, поэтому их формат не документирован. Лучше всего использовать макросы LibreOffice или OpenOffice (или, возможно, Word), чтобы выполнить эту работу. LibreOffice/OpenOffice имеют хорошо документированные интерфейсы.

+0

На самом деле форматы файлов очень хорошо документированы. формат файла .doc - это общий формат контейнера (CFBF), используемый многими, многими вещами и полностью документированный Microsoft. По сути, это коллекция «потоков» и «контейнеров». Контейнеры содержат потоки и другие контейнеры. Что не может быть документировано, так это то, как интерпретировать данные документа MSWord, хранящиеся в потоке документа, но документируется общий формат файла. –