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
- Rechercher et remplacer du texte dans des documents Word
- Utiliser des expressions régulières pour rechercher et remplacer du texte
- Remplacer le texte à l’aide de méta-caractères
- Ignorer le texte pendant l’opération de recherche et de remplacement
- Obtenez une licence gratuite
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 :
- setIgnoreFields(bool) - Ignores text inside the fields
- setIgnoreDeleted(bool) - Ignores text inside the delete revisions
- setIgnoreInserted(bool) - Ignores text inside the insert revisions
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.