Недавно добавленные исходники

•  DeLiKaTeS Tetris (Тетрис)  4 662

•  TDictionary Custom Sort  6 668

•  Fast Watermark Sources  6 449

•  3D Designer  9 382

•  Sik Screen Capture  6 783

•  Patch Maker  7 191

•  Айболит (remote control)  7 180

•  ListBox Drag & Drop  6 029

•  Доска для игры Реверси  97 652

•  Графические эффекты  7 354

•  Рисование по маске  6 655

•  Перетаскивание изображений  5 512

•  Canvas Drawing  5 895

•  Рисование Луны  5 637

•  Поворот изображения  5 124

•  Рисование стержней  3 717

•  Paint on Shape  2 928

•  Генератор кроссвордов  3 832

•  Головоломка Paletto  3 069

•  Теорема Монжа об окружностях  3 881

•  Пазл Numbrix  2 553

•  Заборы и коммивояжеры  3 293

•  Игра HIP  2 258

•  Игра Go (Го)  2 181

•  Симулятор лифта  2 574

•  Программа укладки плитки  2 188

•  Генератор лабиринта  2 691

•  Проверка числового ввода  2 339

•  HEX View  2 675

•  Физический маятник  2 325

 
скрыть

Как заменить текст в документе MS Word



{
  This function starts a hidden word instance, opens a specified document "ADocument"
  and replaces (all) occurrences of "SearchString" with a specified "ReplaceString".
  The function is similar to the Delphi StringReplace() function.
}

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;