- Delphiartiklar, tips, forum, länksamling - 

      

START | DELPHI | LÄNKARGÄSTBOK 




 Forum

Grundkurs
  »Introduktion
  »Snabbguide
  »Komponenter
  »Händelser
  »Strängar
  »Räkna med Delphi   »Egna typer
  »Selektion
  »Iteration
  »Menyer
  »Funktioner
  »Arraystrukturer

Tips & Tricks
  »Nya tips
  »Blandat
  »Databaser
  »Filer
  »Forms
  »Grafik
  »Internet
  »Komponenter
  »Matematik
  »Multimedia
  »Objekt/ActiveX
  »Skrivare
  »Strängar
  »System
  »Mest lästa tips

Artiklar
  »Delphi och ADO
  »Bygga en DLL
  »Skapa en enkel rapport
  »Hantera registret
  »Enheter, units
  »Klassen TCanvas
  »Använd LookUp Controls

 Nya tips
 Lägg till tips
 Delphilänkar
 Gästbok

 

Ersätt text i Word Kategori: Objekt/ActiveX
Inlagt: 2004-06-27
Läst: 1309
Inlagt av: Staffan Berg
Beskrivning
Exempel på att söka och ersätta text i Microsoft Word från Delphi. 
Kod
uses  
 ComObj;  
 
// Replace Flags  
type  
 TWordReplaceFlags = set of (wrfReplaceAll, wrfMatchCase, wrfMatchWildcards);  
 
function Word_StringReplace(ADocument: TFileName; SearchString, ReplaceString: string ; Flags: TWordReplaceFlags): Boolean;  
const  
 wdFindContinue = 1;  
 wdReplaceOne = 1;  
 wdReplaceAll = 2;  
 wdDoNotSaveChanges = 0;  
var  
 WordApp: OLEVariant;  
begin  
 Result := False;  
 
 //Check if file exists 
 if not FileExists(ADocument) then  
 begin  
  ShowMessage('Specified Document not found.');  
  Exit;  
 end;  
 
 //Create the OLE Object 
 try  
  WordApp := CreateOLEObject('Word.Application');  
 except  
  on E: Exception do  
  begin  
   E.Message := 'Word is not available.';  
   raise;  
  end;  
 end;  
 
 try  
  //Hide Word 
  WordApp.Visible := False;  
  //Open the document 
  WordApp.Documents.Open(ADocument);  
  //Initialize parameters 
  WordApp.Selection.Find.ClearFormatting;  
  WordApp.Selection.Find.Text := SearchString;  
  WordApp.Selection.Find.Replacement.Text := ReplaceString;  
  WordApp.Selection.Find.Forward := True;  
  WordApp.Selection.Find.Wrap := wdFindContinue;  
  WordApp.Selection.Find.Format := False;  
  WordApp.Selection.Find.MatchCase := wrfMatchCase in Flags;  
  WordApp.Selection.Find.MatchWholeWord := False;  
  WordApp.Selection.Find.MatchWildcards := wrfMatchWildcards in Flags;  
  WordApp.Selection.Find.MatchSoundsLike := False;  
  WordApp.Selection.Find.MatchAllWordForms := False;  
  //Perform the search 
  if wrfReplaceAll in Flags then  
   WordApp.Selection.Find.Execute(Replace := wdReplaceAll)  
  else  
   WordApp.Selection.Find.Execute(Replace := wdReplaceOne);  
  //Save word 
  WordApp.ActiveDocument.SaveAs(ADocument);  
  //Assume that successful 
  Result := True;  
  //Close the document  
  WordApp.ActiveDocument.Close(wdDoNotSaveChanges);  
 finally  
  //Quit Word 
  WordApp.Quit;  
  WordApp := Unassigned;  
 end;  
end;  
 
procedure TForm1.Button1Click(Sender: TObject);  
begin  
 Word_StringReplace('C:\Test.doc','Old String','New String',[wrfReplaceAll]);  
end;  

 
 
© Copyright 2005 - Staffan Berg
- Alla rättigheter förbehålles -