Главная страница
    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
15-1148455238
alles
2006-05-24 11:20
2006.06.18
Знатокам asp


3-1145631741
Виталий84
2006-04-21 19:02
2006.06.18
Поиск по базе


15-1148359025
egert
2006-05-23 08:37
2006.06.18
Отправка письма через прокси


1-1145964438
Alexandr
2006-04-25 15:27
2006.06.18
новая страница word


1-1147354573
vidiv
2006-05-11 17:36
2006.06.18
Формулы в Edit





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский