Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Word и VC++ 
:(
    Опции темы
nas_alex
  Дата 25.8.2004, 18:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 8.6.2004

Репутация: нет
Всего: нет



помогите....

открываю документ WORD и пытаюсь заменить в нем строку, появляется ошибка "Несовпадение типов"


Код
COleVariant vte(DISP_E_PARAMNOTFOUND, VT_ERROR);
 COleVariant vtFileName("c:\\1.doc");

_Application theWordApp;
CString select;
theWordApp.CreateDispatch("Word.Application");  
Documents theWordDocs = theWordApp.GetDocuments();
_Document theWordDoc = theWordDocs.Open(vtFileName, vte,  vte, vte, vte, vte, vte, vte, vte, vte, vte, vte, vte, vte, vte);
theWordDoc.Select();
theWordApp.SetVisible(TRUE);
Find ss=theWordDoc;
COleVariant  find_inf("Иванов");
COleVariant repl_inf("Петров");
COleVariant vte1;

ss.Execute(find_inf,vte1,vte1,vte1,vte1,vte1,vte1,vte1,vte1,vte1,repl_inf,vte1,vte1,vte1,vte1);

PM MAIL   Вверх
Олег М
Дата 25.8.2004, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 436
Регистрация: 10.6.2004
Где: Москва

Репутация: 7
Всего: 7



Что-то непонятно что ты вообще делаешь.
Что значит заменить строку?
PM MAIL ICQ   Вверх
nas_alex
Дата 25.8.2004, 18:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 8.6.2004

Репутация: нет
Всего: нет



короче у меня есть шаблон документа, в котором есть поле фамилия (в вордовом документе оно @fio ) я открываю документ и хочу заменить поле @fio на переменную, в которой хранится фамилия.
PM MAIL   Вверх
Олег М
Дата 25.8.2004, 18:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 436
Регистрация: 10.6.2004
Где: Москва

Репутация: 7
Всего: 7



В ВБА вот так
Код

   With Selection.Find
       .Text = "@fio"
       .Replacement.Text = "Иванов"
       .Forward = True
       .Wrap = wdFindContinue
       .Format = False
       .MatchCase = False
       .MatchWholeWord = False
       .MatchWildcards = False
       .MatchSoundsLike = False
       .MatchAllWordForms = False
   End With
   Selection.Find.Execute

В с++ наверное вот так (параметры сам подставишь)
Код

app->Documents->Open(......
app->Selection->Find->Execute(....

И нафига ты через диспатч работаешь? Я же тебе написал как надо!
Если ты через #import подцепил библиотеки, в каталоге с твоим проектом дожны появится файлы *.tlh и *.tli - там все классы. описание смотри в хелпах по VBA
PM MAIL ICQ   Вверх
nas_alex
Дата 25.8.2004, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 8.6.2004

Репутация: нет
Всего: нет



дык там ошибки сыпались...
есть рабочий пример?
PM MAIL   Вверх
Олег М
Дата 25.8.2004, 18:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 436
Регистрация: 10.6.2004
Где: Москва

Репутация: 7
Всего: 7



Цитата(nas_alex @ 25.8.2004, 21:49)
дык там ошибки сыпались...

Какие? Он, вообще, рабочий был.
PM MAIL ICQ   Вверх
Олег М
Дата 26.8.2004, 05:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 436
Регистрация: 10.6.2004
Где: Москва

Репутация: 7
Всего: 7



вот так работает (офис ХР)
.h
Код

#import "C:\Program Files\Common Files\Microsoft Shared\Office10\MSO.DLL"
#import "c:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\VBE6EXT.OLB"
#import "C:\Program Files\Microsoft Office\Office10\MsWord.olb" \
rename("ExitWindows","_ExitWindows") //rename_namespace("MICROSOFT_WORD_97")

.cpp
Код

using namespace Word;
.............
::CoInitialize(NULL);
.............
_ApplicationPtr app;
HRESULT hr=app.CreateInstance(_T("Word.Application"));
app->Visible=TRUE;
app->Documents->Open(COleVariant(_T("c:\\fio.doc")));
hr=app->Selection->Find->Execute(
 COleVariant(_T("@fio")),
 &vtMissing,
       &vtMissing,
       &vtMissing,
       &vtMissing,
       &vtMissing,
       &vtMissing,
       &vtMissing,
       &vtMissing,
       /*VARIANT * ReplaceWith = */COleVariant(_T("Иванов")),
       /*VARIANT * Replace = */&vtMissing,
       &vtMissing,
       &vtMissing,
       &vtMissing,
       &vtMissing );


Это сообщение отредактировал(а) Олег М - 26.8.2004, 05:08
PM MAIL ICQ   Вверх
nas_alex
Дата 26.8.2004, 08:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 8.6.2004

Репутация: нет
Всего: нет



большое спасибо, теперь работает.
а не скажешь где есть хорошие курсы по VC.
PM MAIL   Вверх
nas_alex
Дата 26.8.2004, 08:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 8.6.2004

Репутация: нет
Всего: нет



еще одну вещь не могу понять: где указать, чтобы заменялись все совпадения?
PM MAIL   Вверх
lynx_916
Дата 27.8.2004, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 316
Регистрация: 13.6.2004
Где: Молдова

Репутация: нет
Всего: 1



http://forum.vingrad.ru/index.php?showtopic=7168
Цитата(nas_alex @ 26.8.2004, 07:05)
а не скажешь где есть хорошие курсы по VC.




--------------------
Who dares, wins. (с) Solid Snake
PM MAIL ICQ YIM MSN   Вверх
chipset
Дата 27.8.2004, 23:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: 27
Всего: 165



Цитата
а не скажешь где есть хорошие курсы по VC.

ИМХО обучения программированию из курсов занятие неблагородное.
Самообучение рулит biggrin.gif


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
Azagtoth
Дата 7.2.2005, 08:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 4.2.2005
Где: Петропавловск-Кам чатский

Репутация: нет
Всего: 2



Цитата(nas_alex @ 26.8.2004, 08:38)
еще одну вещь не могу понять: где указать, чтобы заменялись все совпадения?

хотелось бы поднять эту тему, тк только что упёрся рогами в именно в это.
как заменить все совпадения?
и как потом начать новый поиск, тк повторный вызов find->execute с другими параметрами ничего не даёт? smile
PM MAIL ICQ   Вверх
Azagtoth
Дата 7.2.2005, 11:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 4.2.2005
Где: Петропавловск-Кам чатский

Репутация: нет
Всего: 2



уфф.. вроде в чём-то сам разобрался.
чтоб поиск продолжался дальше, необходимо снять выделение с фрагмента заменённого первым участком кода, тк ворд ищет в выделенном учаске текста.
я сделал так
Код
hr=app->Selection->Collapse(&vtMissing);

может и неправильно, но работает smile
после этого можно дальше искать->заменять...
а вот как заменить все совпадения, так и осталось загадкой... smile

Это сообщение отредактировал(а) Azagtoth - 7.2.2005, 11:13
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0529 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.