Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: ActiveX/СОМ/CORBA > Как сделать поиск/замену в документе?


Автор: Pakshin A. S. 10.11.2004, 20:16
You should use a variant because the Find.Execute method is a bit buggy. Something like this, for example: 
Код


{ ... } 
var 
  Rnge: OleVariant; 
{ ... } 

Rnge := Doc.Content; 
Rnge.Find.Execute('old', Wrap := wdFindContinue, ReplaceWith := 'new', Replace := 
  wdReplaceAll); 
{ ... } 



--------------------------------------------------------------------------------

Код

{ ... } 
  { Create the OLE Object } 
WordApp := CreateOLEObject('Word.Application'); 
WordApp.Documents.Open(yourDocFile); 
WordApp.Selection.Find.ClearFormatting; 
WordApp.Selection.Find.Text := yourOldStr; 
WordApp.Selection.Find.Replacement.Text := yourNewStr; 
WordApp.Selection.Find.Forward := True; 
WordApp.Selection.Find.Wrap := 1; {wdFindContinue} 
WordApp.Selection.Find.Format := False; 
WordApp.Selection.Find.MatchCase := False; 
WordApp.Selection.Find.MatchWholeWord := False; 
WordApp.Selection.Find.MatchWildcards := True; 
WordApp.Selection.Find.MatchSoundsLike := False; 
WordApp.Selection.Find.MatchAllWordForms := False; 
WordApp.Selection.Find.Execute(Replace := 2); {wdReplaceAll} 
{Or as alternative:  WordApp.Selection.Find.Execute(Replace := 1); for one replace} 
WordApp.ActiveDocument.SaveAs(yourNewDocFile); 
WordApp.Quit; 
WordApp := Unassigned; 
{ ... } 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)