本文整理自网络,侵删。
uses ComObj;
// Replace Flagstype 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;
相关阅读 >>
Delphi [数据库连接字符串] access 连接字符串
Delphi windows 编程[19] - 改变菜单项的状态: getmenustate、enablemenuitem
Delphi idmessage1 idsmtp1 发送邮件支持https
更多相关阅读请进入《Delphi》频道 >>