Консультация № 73022
28.01.2007, 16:54
0.00 руб.
0 1 1
Здравствуйте, уважаемые эксперты! Имеется Word-овский файл. В этом файле имеются написи: Статья 1, Статья 2 и т. д. до 400. Как мне сделать так, чтобы программа читала после этой записи (Статья 1) и вносила, скажем, в Memo1?
Буду благодарен!

Обсуждение

Неизвестный
29.01.2007, 11:17
общий
это ответ
Здравствуйте, LogrusEx!

попробуйте ниже приведенный код

что нужно на форму ложить там ясно вроде

удачи

Приложение:
procedure TForm1.Button1Click(Sender: TObject);var WFalse : OleVariant; s_range : Range; wrd : TWordApplication; wrddoc : TWordDocument; txt : OleVariant; function OpenDoc( Word : TWordApplication; FName : WideString ) : _Document; var FileName, ConfirmConversions, ReadOnly, AddToRecentFiles, Revert, Format : OLEVariant; begin FileName := FName; ConfirmConversions:=False; ReadOnly:=True; AddToRecentFiles:=False; Revert:=True; Format:= wdOpenFormatAuto; Result := Word.Documents.Open( FileName, ConfirmConversions, ReadOnly, AddToRecentFiles, EmptyParam, EmptyParam, Revert, EmptyParam, EmptyParam, Format, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam); end;// end functionbegin WFalse:=false; try Wrd:=TWordApplication.Create(nil); try Wrd.ConnectKind := ckNewInstance; Wrd.Connect; wrddoc:=TWordDocument.Create(nil); try wrddoc.ConnectKind:=ckAttachToInterface; wrddoc.ConnectTo(OpenDoc(wrd, ‘c:\1.doc‘)); s_range:=Wrd.ActiveDocument.ActiveWindow.Selection.Range; txt:=‘Статья 1‘; if Wrd.ActiveDocument.ActiveWindow.Selection.Find.Execute(txt, wfalse, wfalse, wfalse, wfalse, wfalse, EmptyParam, wfalse, EmptyParam, EmptyParam,EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam) then s_range.Start:=Wrd.ActiveDocument.ActiveWindow.Selection.Start; txt:=‘Статья 2‘; Wrd.ActiveDocument.ActiveWindow.Selection.Start:=0; Wrd.ActiveDocument.ActiveWindow.Selection.End_:=0; if Wrd.ActiveDocument.ActiveWindow.Selection.Find.Execute(txt, wfalse, wfalse, wfalse, wfalse, wfalse, EmptyParam, wfalse, EmptyParam, EmptyParam,EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam) then s_range.End_ :=Wrd.ActiveDocument.ActiveWindow.Selection.Start; if s_range.End_>s_range.Start then begin s_range.Copy; Memo1.PasteFromClipboard; end; wrddoc.Close; Wrd.Quit(WFalse); finally wrddoc.Free; end; finally Wrd.Free; end; except end;end;
Форма ответа