Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Corba";
Текущий архив: 2006.06.18;
Скачать: [xml.tar.bz2];

Вниз

Word : Поиск и замена   Найти похожие ветки 

 
Yurij-7   (2005-07-05 18:56) [0]

Вечер добрый
Уважаемые мастера, прошу помочь в следуюей ситуации :
есть докумет ворды, в нем есть надписи (рамочки) я туда пишу слово (#FIO#), которое пытаюсь найти и заменить на значение например из EDIT1.TEXT, но вот проблема  если #FIO# в теле документа то его находит и меняет, а вот если в надписи то ничего неполучаеться, вот пример кода:
word.activedocument.range.find.execute (FindText := "#FIO#", replacewith := edit1.Text, replace := wdReplaceAll);

Заранее благодарен.


 
Yurij-7   (2005-07-06 10:52) [1]

ну неужели никто незнает, или может я неправильно задал  вопрос?


 
Yurij-7   (2005-07-06 11:35) [2]

или всетаки лучше использовать закладки?


 
Virgo_Style ©   (2005-07-06 11:42) [3]

Мне это решение не нравится, скорее всего есть более красивое, но.. работает же %-)

var oleI: OleVariant; I: integer;
...
//Здесь твой поиск (по документу)

//А здесь - по надписям
for I:=1 to WApp.ActiveDocument.Shapes.Count do
begin
 oleI:=I;
 WApp.ActiveDocument.Shapes.Item(oleI).Select(EmptyParam);

//Здесь твой поиск по надписям

end;


 
Yurij-7   (2005-07-06 11:52) [4]

а что можете посоветовать? я просто только учусь, и может изначально выбираю ложный путь?
я так понимаю что если мне надо изменить что то в надписи то ее надо выделить??
спасибо.


 
Yurij-7   (2005-07-06 13:15) [5]

Virgo_Style ©   (06.07.05 11:42) [3]  - нехочет работать :((


 
Virgo_Style ©   (2005-07-06 13:32) [6]

Yurij-7   (06.07.05 13:15) [5]
нехочет работать


C часу до двух - перерыв на обед 8-)

Что говорит-то?


 
Yurij-7   (2005-07-06 13:41) [7]

Virgo_Style ©   (06.07.05 13:32) [6]  так вроде 12:30 :)))
делаю примерно так:

word.documents.open (pat);
for I:=1 to word.ActiveDocument.Shapes.Count do
begin
oleI:=I;
word.ActiveDocument.Shapes.Item(oleI).Select(EmptyParam);

//Здесь твой поиск по надписям
word.activedocument.Shapes.find.execute (FindText := "#pbcard#", replacewith := edit1.Text, replace := wdReplaceAll);
end;

а оно пишет типа неподдерживаеться автоматизацией :((
пдскажите пжл что делать.
спасибо


 
Virgo_Style ©   (2005-07-06 13:52) [8]

На какой строке пишет? И для какой версии TWordApplication? У меня для 2000.

"Поиск по надписям" я делал так:
 Result:=WApp.Selection.Find.Execute(.....),  Word.ActiveDocument.Shapes у меня не имеет ни метода, ни свойства Find.


 
Yurij-7   (2005-07-06 15:57) [9]

я Ворд запускаю через CreateOleObject
именно то что вы подсказали и работает, жаль что долговато ,просто я еще добавлял activedocument и через то отказывалось работать.

Virgo_Style ©   (06.07.05 13:52) [8]  Огромное спасибо !!!


 
Yurij-7   (2005-07-07 16:33) [10]

еще возник вопросик, всего порядка 60 надписей, и сам документ формируеться очень долго, может надо обращаться до конкретного итема (точнее надписи)?
спасибо.


 
Yurij-7   (2005-07-08 17:15) [11]

нашел выход. может кому интересно будет, всего то надо было надпись отправить на задный план, и уже получаеться что владельцем идентификатора являеться не надпись а сам документ



Страницы: 1 вся ветка

Форум: "Corba";
Текущий архив: 2006.06.18;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.011 c
2-1149285805
mr1Andersen
2006-06-03 02:03
2006.06.18
Как сделать с помощью Delphi5 действие: Пуск-Выполнить ?


15-1148429089
_Hawk_
2006-05-24 04:04
2006.06.18
Шпион aka Trainer Spy


1-1147540799
deltav1
2006-05-13 21:19
2006.06.18
Параллелизм и время


3-1145617005
Экспериментатор
2006-04-21 14:56
2006.06.18
Есть Query с запросом, научите как получить значение REGS.TypeReg


2-1149175089
dimak-2k
2006-06-01 19:18
2006.06.18
Проверка о существовании файла и кое-что о RadioGroup





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский