rechercher et remplacer du texte dans Word C++

Rechercher et remplacer est une fonctionnalité utile fournie par MS Word qui vous permet de mettre à jour toutes les occurrences d’un texte particulier à la fois. Ainsi, vous n’avez pas à localiser et à remplacer manuellement le texte dans l’ensemble du document. Dans cet article, vous apprendrez à rechercher et à remplacer du texte dans des documents Word à partir d’applications C++. Cela peut être utile lorsque vous devez remplacer un texte particulier dans plusieurs documents en une seule fois.

API C++ pour rechercher et remplacer du texte

Aspose.Words for C++ est une bibliothèque C++ pour créer de nouveaux documents Word et manipuler des documents existants. L’API prend en charge un large éventail de fonctionnalités d’automatisation Word de base et avancées. Vous pouvez télécharger le package API ou l’installer à l’aide de NuGet.

Install-Package Aspose.Words.Cpp

Rechercher et remplacer du texte dans des documents Word à l’aide de C++

Voici les étapes pour rechercher et remplacer du texte dans des documents Word à l’aide de Aspose.Words for C++.

  • Chargez le document Word à l’aide de la classe Document.
  • Remplacez le mot souhaité en utilisant Document->getRange()->Replace(u"sad", u"bad", System::MakeObject ) méthode.
  • Enregistrez le document Word mis à jour à l’aide de la méthode Document->Save(String).

L’exemple de code suivant montre comment rechercher et remplacer le mot “sad” par “bad” dans un document Word à l’aide de C++.

// Charger le document MS Word
System::SharedPtr<Document> doc = System::MakeObject<Document>(u"Document.doc");

// Rechercher et remplacer le texte
doc->get_Range()->Replace(u"sad", u"bad", System::MakeObject<FindReplaceOptions>(FindReplaceDirection::Forward));

// Enregistrer le document mis à jour 
doc->Save(u"updated.doc");

Rechercher et remplacer du texte à l’aide d’expressions régulières

Vous pouvez également définir les expressions régulières afin de rechercher et de remplacer les mots qui suivent un modèle particulier. Par exemple, vous pouvez remplacer les mots “triste” et “fou” par le mot “mauvais”. Voici les étapes pour rechercher et remplacer des mots correspondant à une expression régulière dans un document Word.

  • Chargez le document Word à l’aide de la classe Document.
  • Utilisez la classe Regex pour définir la regex.
  • Remplacez le mot souhaité en utilisant Document->getRange()->Replace().
  • Enregistrez le document Word mis à jour à l’aide de la méthode Document->Save(String).

L’exemple de code suivant montre comment rechercher et remplacer du texte à l’aide d’une expression régulière en C++.

// Charger le document MS Word
System::SharedPtr<Document> doc = System::MakeObject<Document>(u"Document.doc");

// Créer des options de recherche et de remplacement
System::SharedPtr<FindReplaceOptions> options = System::MakeObject<FindReplaceOptions>();

// Rechercher et remplacer le texte
doc->get_Range()->Replace(System::MakeObject<System::Text::RegularExpressions::Regex>(u"[s|m]ad"), u"bad", options);

// Enregistrer le document mis à jour 
doc->Save(u"updated.doc");

Find and Replace Text using Meta-Characters

Dans certains cas, le texte que vous souhaitez remplacer peut inclure les sauts, c’est-à-dire le saut de ligne, le saut de paragraphe, le saut de section, etc. Afin de faire face à de tels scénarios, Aspose.Words for C++ prend en charge les métacaractères suivants dans les chaînes de recherche et de remplacement .

  • &p pour un saut de paragraphe
  • &b pour le saut de section
  • &m pour saut de page
  • &l pour un saut de ligne manuel

L’exemple de code suivant montre comment rechercher et remplacer du texte à l’aide de méta-caractères dans un document Word.

// Charger le document MS Word
System::SharedPtr<Document> doc = System::MakeObject<Document>(u"Document.doc");

// Créer des options de recherche et de remplacement
System::SharedPtr<FindReplaceOptions> options = System::MakeObject<FindReplaceOptions>();

// Rechercher et remplacer le texte
doc->get_Range()->Replace(u"This is Line 1&pThis is Line 2", u"This is replaced line", options);
doc->get_Range()->Replace(u"This is Line 1&mThis is Line 2", u"Page break is replaced with new text.", options);

// Enregistrer le document mis à jour 
doc->Save(u"updated.doc");

Ignorer le texte pendant l’opération de recherche et de remplacement

Aspose.Words for C++ vous permet également d’ignorer le texte dans les champs et les révisions lors de l’opération de recherche et de remplacement. La classe FindReplaceOptions vous permet de spécifier les options pour ajouter cette personnalisation. La classe FindReplaceOptions fournit les méthodes suivantes pour ignorer le texte dans différents scénarios :

L’exemple de code suivant montre comment ignorer le texte dans chacun des scénarios mentionnés ci-dessus.

// Charger le document MS Word
System::SharedPtr<Document> doc = System::MakeObject<Document>(u"Document.doc");

// Créer des options de recherche et de remplacement
System::SharedPtr<FindReplaceOptions> options = System::MakeObject<FindReplaceOptions>();

// Remplacer 'e' dans le document en ignorant le texte à l'intérieur du champ
options->set_IgnoreFields(true);
doc->get_Range()->Replace(System::MakeObject<Regex>(u"e"), u"*", options);

// Remplacer 'e' dans le document en ignorant le texte supprimé
options->set_IgnoreDeleted(true);
doc->get_Range()->Replace(System::MakeObject<Regex>(u"e"), u"*", options);

// Remplacer 'e' dans le document en ignorant le texte inséré
options->set_IgnoreInserted(true);
doc->get_Range()->Replace(System::MakeObject<Regex>(u"e"), u"*", options);

// Enregistrer le document mis à jour 
doc->Save(u"updated.doc");

Obtenez une licence gratuite

Vous pouvez obtenir une licence temporaire gratuite afin d’essayer l’API sans limitation d’évaluation.

Conclusion

Dans cet article, vous avez vu comment rechercher et remplacer du texte dans des documents Word à l’aide de C++. Le guide étape par étape et les exemples de code ont montré comment personnaliser la fonction de recherche et de remplacement dans différents scénarios. Vous pouvez en savoir plus sur l’API d’automatisation C++ Word à l’aide de documentation.

Voir également