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

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.035 c
4-1085217844
trix
2004-05-22 13:24
2004.07.04
Как програмно нажать клавиши


14-1087430642
R
2004-06-17 04:04
2004.07.04
Ваше право на вашу же программу


1-1087333802
AndrewVolkov
2004-06-16 01:10
2004.07.04
Listview style vsList


4-1085420501
notA
2004-05-24 21:41
2004.07.04
"описатель окна"(HWND)


8-1082449330
Sanchos
2004-04-20 12:22
2004.07.04
Воспроизвести mp3?





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