Programowe podmienianie wyrazow w dokumentach Word

Programowe podmienianie wyrazow w dokumentach Word
E1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 38
0

Witam.
Zwracam się do Was z kilkoma pytaniami. Chciałbym napisać program który ma za zadanie przeszukanie całego dokumentu w celu znalezieniu poszczególnych wyrazów i podmienieniu ich na wyrazy z bazy danych.
Znalazłem taki o to przykład na stronie microsoftu taki kod który przechodzi przez kilka pętli:

Kopiuj
private void FindLoop()
{
   int intFound = 0;
   Word.Document document = this.Application.ActiveDocument;
   Word.Range rng = document.Content;

   rng.Find.ClearFormatting();
   rng.Find.Forward = true;
   rng.Find.Text = "find me";

   rng.Find.Execute(
       ref missing, ref missing, ref missing, ref missing, ref missing,
       ref missing, ref missing, ref missing, ref missing, ref missing,
       ref missing, ref missing, ref missing, ref missing, ref missing);

   while (rng.Find.Found)
   {
       intFound++;
       rng.Find.Execute(
           ref missing, ref missing, ref missing, ref missing, ref missing,
           ref missing, ref missing, ref missing, ref missing, ref missing,
           ref missing, ref missing, ref missing, ref missing, ref missing);
   }

   MessageBox.Show("Strings found: " + intFound.ToString());
}

Tutaj metoda która wyszukuje i zastępuje tekst w dokumentach:

Kopiuj
private void SearchReplace()
{
    Word.Find findObject = Application.Selection.Find;
    findObject.ClearFormatting();
    findObject.Text = "find me";
    findObject.Replacement.ClearFormatting();
    findObject.Replacement.Text = "Found";

    object replaceAll = Word.WdReplace.wdReplaceAll;
    findObject.Execute(ref missing, ref missing, ref missing, ref missing, ref missing,
        ref missing, ref missing, ref missing, ref missing, ref missing,
        ref replaceAll, ref missing, ref missing, ref missing, ref missing);
}

mam rozumieć że każdy

Kopiuj
ref missing 

to wyraz który ma być szukany? Jak mogę przerobić ten kod tak, żeby pobierał dane do podstawienia z bazy? oraz jak uruchomić te funkcja na rzecz wczytanego dokumentu tekstowego?

VX
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Poland
  • Postów: 31
0
Eryk17 napisał(a):

mam rozumieć że każdy

Kopiuj
ref missing 

to wyraz który ma być szukany? Jak mogę przerobić ten kod tak, żeby pobierał dane do podstawienia z bazy? oraz jak uruchomić te funkcja na rzecz wczytanego dokumentu tekstowego?

To nie są wyrazy, które mają być wyszukane.
Dokumentacja dla Find.Execute: https://docs.microsoft.com/en-us/dotnet/api/microsoft.office.interop.word.find.execute?view=word-pia

Te wszystkie ref missing można określić jako ustawienia wyszukiwania.

Składnia Microsoft.Office.Interop.Word.Find.Execute:

Kopiuj
public bool Execute (ref object FindText, ref object MatchCase, ref object MatchWholeWord, ref object MatchWildcards, ref object MatchSoundsLike, ref object MatchAllWordForms, ref object Forward, ref object Wrap, ref object Format, ref object ReplaceWith, ref object Replace, ref object MatchKashida, ref object MatchDiacritics, ref object MatchAlefHamza, ref object MatchControl);

VX Blog | Asembler - Pisma zebrane | YT

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.