Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.07.04;
Скачать: CL | DM;

Вниз

OLE-автоматизация Ворда и закладки   Найти похожие ветки 

 
ИМХО ©   (2004-06-21 18:04) [0]

Кто имеет опыт автоматизации Ворда?
Задача такая: нужно из вордовского файла вырвать кусок, связанный с определенной закладкой. Открыл файл, нашел названия всех закладок, но как взять этот кусок между закладкой A и закладкой B?


 
YurikGL ©   (2004-06-21 18:20) [1]

Можно код, про закладки. Может чем помогу.
З.Ы. Опыт автоматизации ворда есть.


 
ИМХО ©   (2004-06-21 18:36) [2]

Вот:

 try
   WD := GetActiveOleObject("Word.Application");
 except
   WD := CreateOleObject("Word.Application");
 end;
 WD.Visible := False;
 WD.Documents.Open(File_Name);
 BookM_Count := WD.ActiveDocument.Bookmarks.Count;
 if BookM_Count > 0 then
   for I := 1 to BookM_Count do
     BookmarksListBox.Items.Add(WD.ActiveDocument.Bookmarks.Item(I).Name);

 if BookM_Count > 0 then
   for I := 1 to BookM_Count do begin
     Pos := WD.ActiveDocument.Bookmarks.Item(I).Start;
     Pos2 := WD.ActiveDocument.Bookmarks.Item(I).End;
     myRange := WD.ActiveDocument.Range(Pos, Pos2);
     ShowMessage(WD.ActiveDocument.Bookmarks.Item(I).Name + ": " + IntToStr(Pos)
       + ", " + IntToStr(Pos2));
   end;

 WD.ActiveDocument.Close;
 WD.Quit;
 WD := Null;


 
YurikGL ©   (2004-06-21 18:40) [3]

Уже сделал выбирает текст между закладкой z1 и z2

procedure TForm1.Button2Click(Sender: TObject);
var
vr1,vr4,r1,r2:olevariant;

begin
vr1:=wdGoToBookmark;
WordApplication1.Connect;
vr4:="z1";
r1:=WordApplication1.Selection.GoTo_(vr1,EmptyParam,EmptyParam,vr4).Start;
vr4:="z2";
r2:=WordApplication1.Selection.GoTo_(vr1,EmptyParam,EmptyParam,vr4).Start;

WordApplication1.ActiveDocument.Range(r1,r2).select;
WordApplication1.Disconnect;

end;


 
YurikGL ©   (2004-06-21 19:07) [4]

ИМХО, получилось?


 
ИМХО ©   (2004-06-21 19:27) [5]

Я этим компонентом вообще не пользуюсь... Можно как-то через CreateOleObject?


 
YurikGL ©   (2004-06-21 19:51) [6]

app := CreateOleObject("Word.Application");
App.Visible := True;
...
грузим нужный файл
...
vr4:="з1";
vr1:=wdGoToBookmark;
r1:=app.Selection.GoTo(vr1,EmptyParam,EmptyParam,vr4).Start;
vr4:="з2";
r2:=app.Selection.GoTo(vr1,EmptyParam,EmptyParam,vr4).Start;
app.ActiveDocument.Range(r1,r2).select;

Кстати, через wordapplication быстрее работает, хотя и глючнее.


 
YurikGL ©   (2004-06-21 19:56) [7]

[3] и [6] найди два отличия :)


 
ИМХО ©   (2004-06-21 20:58) [8]

А как можно выбранный кусок отдельно сохранить?

Спасибо.


 
YurikGL ©   (2004-06-21 21:55) [9]

Теперь выбранному куску тексту сооветствует объект selection.
Можно через буфер в другой документ selection.copy и selection.paste.


 
YurikGL ©   (2004-06-21 22:01) [10]

Хотя можешь попытаться скопировать selection в переменную. Сам selection - 4-х байтный указатель.


 
YurikGL ©   (2004-06-21 22:06) [11]

Если нужен только текст, то Selection.Text:widestring попробуй.

Memo1.Text:=app.selection.text; прокатило.


 
ИМХО ©   (2004-06-21 22:33) [12]

Спасибо, сейчас попробую.


 
YurikGL ©   (2004-06-21 22:37) [13]


> ИМХО

Эксклюзивно для тебя, если пользовать TWordapplication, то по ctrl+пробел он показывает массу интересных функций и пропертив, включая их тип. Пошарься сам, - много найдешь.


 
YurikGL ©   (2004-06-21 22:41) [14]


>  ИМХО

Пользуясь случаем, ИМХО, напиши мне свой e-mail на YurikGL(собака)newmail.ru

Просьба модераторам, пожалуйста, не удаляйте сообщение, пока ИМХО что-нибудь не ответить.


 
ИМХО ©   (2004-06-21 22:46) [15]

Но насколько мне известно, Борланд импортировал далеко не все функции и процедуры от Мелкософта. Я еще смотрю Microsoft Word Visual Basic Reference.


 
ИМХО ©   (2004-06-21 22:47) [16]

Написал.


 
YurikGL ©   (2004-06-21 22:49) [17]


> ИМХО ©   (21.06.04 22:46) [15]

Пробовал я пользовать> Visual Basic Reference. В основном неудачно. Две трети полезный функций нашел через макросы, треть через [13].
Это, конечно, не считая всяких example-в



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

Текущий архив: 2004.07.04;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.04 c
4-1085250854
К.К.С.
2004-05-22 22:34
2004.07.04
Изменение аттрибутов папки и её содержимого


1-1087553567
Karlson
2004-06-18 14:12
2004.07.04
Изменение размера CheckBox


3-1086707841
Юрий
2004-06-08 19:17
2004.07.04
Индексы


14-1087186912
X9
2004-06-14 08:21
2004.07.04
Новый проц


6-1082043089
Cfytr
2004-04-15 19:31
2004.07.04
авторизация