Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.01.2010, 00:20   #1
denis821
Новичок
Джуниор
 
Регистрация: 23.03.2009
Сообщений: 2
По умолчанию Поиск и замена в doc файле Qt

необходимо заменить текст в doc файле.
вот исходный код:
Код:
QAxObject* WordApplication=new QAxObject("Word.Application"); 
QAxObject* WordDocuments = WordApplication->querySubObject( "Documents" ); 
QString Path = QDir::currentDirPath();
QString TempPath = Path + "\\P16001.doc";
WordDocuments->querySubObject( "Open(const QString&)", TempPath ); 
    QAxObject *WordSelection = WordApplication->querySubObject( "Selection" );
    QAxObject *WordFind = WordSelection->querySubObject( "Find" );
    WordFind->dynamicCall("ClearFormatting()");
    QAxObject *WordRepl = WordFind->querySubObject( "Replacement" );
    WordRepl->dynamicCall("ClearFormatting()");
    WordFind->dynamicCall("setText(const QString &)", "%004%");
    WordRepl->dynamicCall("setText(const QString &)", "4");
    WordFind->dynamicCall("setForward(bool)",true);
    WordFind->dynamicCall("setWrap(QVariant)", 1);
    WordFind->dynamicCall("setFormat(bool)", false);
    WordFind->dynamicCall("setMatchCase(bool)", false);
    WordFind->dynamicCall("setMatchWholeWord(bool)", false);
    WordFind->dynamicCall("setMatchWildcards(bool)", false);
    WordFind->dynamicCall("setMatchSoundsLine(bool)", false);
    WordFind->dynamicCall("setMatchAllWordForms(bool)", false);
 QValueList<QVariant> params;
 params.operator<<( QVariant("%003%"));
 params.operator<<( QVariant("0"));
 params.operator<<( QVariant("0"));
 params.operator<<( QVariant("0"));
 params.operator<<( QVariant("0"));
 params.operator<<( QVariant("0"));
 params.operator<<( QVariant("0"));
 params.operator<<( QVariant("0"));
 params.operator<<( QVariant("0"));
 params.operator<<( QVariant("3"));
 params.operator<<( QVariant("2"));
 params.operator<<( QVariant("0"));
 params.operator<<( QVariant("0"));
 params.operator<<( QVariant("0"));
 params.operator<<( QVariant("0"));
    WordFind->dynamicCall("Execute(const QVariant&,const QVariant&,const QVariant&,const QVariant&,const QVariant&,const QVariant&,const QVariant&,const QVariant&,const QVariant&,const QVariant&,const QVariant&,const QVariant&,const QVariant&,const QVariant&,const QVariant&)", params);
Делал все по образцу Word-ского макроса но куда поместить Word.WdReplace.wdReplaceAll не пойму.
На сайте майкрософта http://msdn.microsoft.com/en-us/libr...3d(VS.80).aspx есть инфа только по VB и С#.

Последний раз редактировалось MaTBeu; 04.01.2010 в 12:58.
denis821 вне форума Ответить с цитированием
Старый 04.01.2010, 12:47   #2
RoS
Форумчанин
 
Аватар для RoS
 
Регистрация: 13.12.2009
Сообщений: 272
По умолчанию

Автор, ничего не понятно, используй
Если я помог вам - порадуйте меня, нажмите на весы слева
RoS вне форума Ответить с цитированием
Старый 04.01.2010, 19:17   #3
denis821
Новичок
Джуниор
 
Регистрация: 23.03.2009
Сообщений: 2
По умолчанию

Для простоты понимания, кто-нибудь делал поиск с заменой в *.doc файле или *.rtf файле с использованием библиотеки Qt?
denis821 вне форума Ответить с цитированием
Старый 06.02.2011, 09:04   #4
D@rkD@iver
Форумчанин
 
Регистрация: 28.07.2009
Сообщений: 189
По умолчанию

люди так разобрались как можено найти текст в doc файле?
пишу программы для студентов и школьников на Pascal, Delphi, C++, WINAPI, assembler
обучаю программированию на паскале(дистанционно);mail: hruslow@gmail.com
D@rkD@iver вне форума Ответить с цитированием
Старый 07.02.2011, 07:56   #5
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

В Qt нет средств для работы с .doc. С ODF — пожалуйста. А с проприетарным doc — нету. И вряд ли будет.
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su
Obey-Kun вне форума Ответить с цитированием
Старый 07.02.2011, 08:33   #6
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

Qt тут используется просто как прокладка для создания COM объекта, при чём тут формат файла. Код будет работать только при установленом мелкомягком офисе.

Другое дело, насколько поддержка COM средствами Qt полна, чтобы обрабатывать извращённые вызовы методов у "Word.Application". Тему в MS Office перенести надо, походу.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 07.02.2011, 08:34   #7
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

Понятно. Тогда не ко мне. Винда для меня — другой мир.
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su
Obey-Kun вне форума Ответить с цитированием
Старый 07.02.2011, 09:38   #8
alex_x_x
Форумчанин
 
Регистрация: 31.01.2011
Сообщений: 160
По умолчанию

denis821, а вызовы вообще проходят? вы бы проверили Word.Application вообще создается ли
alex_x_x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск в файле SVadiks Помощь студентам 2 13.12.2009 21:46
Поиск в файле hen Помощь студентам 1 11.04.2009 21:28
Поиск в файле Cdevelop Общие вопросы C/C++ 5 16.03.2009 19:49
Поиск и замена текста в файле VAbramyak Общие вопросы Delphi 3 04.04.2007 20:20