Обо мне

Моя фотография
Индивид, которому нравится слушать качественную музыку, а потом делиться впечатлениями с другими!
Показаны сообщения с ярлыком replace. Показать все сообщения
Показаны сообщения с ярлыком replace. Показать все сообщения

среда, 30 марта 2011 г.

[Qt] Поиск и замена текста в Microsoft Word посредством ActiveQt

Обратил внимание на то, что в интернете на форумах достаточно сложно найти информацию о том, как производить поиск и замену текста в Microsoft Word посредством ActiveQt. Для собственного проекта написал следующую процедуру:

void MsWordDocument::replaceString(const QString& oldString, const QString& newString)
{
  QAxObject* WordSelection = WordApplication->querySubObject("Selection");

  QAxObject* Find = WordSelection->querySubObject("Find");
  if (!Find) return;
  Find->dynamicCall("ClearFormatting()");

  QList<QVariant> params;
  params.operator << (QVariant(oldString));
  params.operator << (QVariant("0"));
  params.operator << (QVariant("0"));
  params.operator << (QVariant("0"));
  params.operator << (QVariant("0"));
  params.operator << (QVariant("0"));
  params.operator << (QVariant(true));
  params.operator << (QVariant("0"));
  params.operator << (QVariant("0"));
  params.operator << (QVariant(newString));
  params.operator << (QVariant("2"));
  params.operator << (QVariant("0"));
  params.operator << (QVariant("0"));
  params.operator << (QVariant("0"));
  params.operator << (QVariant("0"));
  Find->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);
 
}
Более подробную информацию о передаваемых параметрах можно прочитать на MSDN