trova e sostituisci testo in Word C++

Trova e sostituisci è un’utile funzione fornita da MS Word che ti consente di aggiornare tutte le occorrenze di un particolare testo contemporaneamente. Pertanto, non è necessario individuare e sostituire manualmente il testo nell’intero documento. In questo articolo imparerai come trovare e sostituire il testo nei documenti di Word dall’interno delle applicazioni C++. Questo potrebbe essere utile quando è necessario sostituire un testo particolare in più documenti in una volta sola.

API C++ per trovare e sostituire il testo

Aspose.Words for C++ è una libreria C++ per la creazione di nuovi documenti Word e la manipolazione di documenti esistenti. L’API supporta un’ampia gamma di funzionalità di automazione di Word di base e avanzate. Puoi scaricare il pacchetto API o installarlo utilizzando NuGet.

Install-Package Aspose.Words.Cpp

Trova e sostituisci testo nei documenti di Word usando C++

Di seguito sono riportati i passaggi per trovare e sostituire il testo nei documenti di Word utilizzando Aspose.Words per C++.

  • Carica il documento di Word usando la classe Document.
  • Sostituisci la parola desiderata usando Document->getRange()->Replace(u"sad", u"bad", System::MakeObject ) metodo.
  • Salva il documento Word aggiornato usando il metodo Document->Save(String).

Nell’esempio di codice seguente viene illustrato come trovare e sostituire la parola “triste” con “non valido” in un documento di Word utilizzando C++.

// Carica documento MS Word
System::SharedPtr<Document> doc = System::MakeObject<Document>(u"Document.doc");

// Trova e sostituisci il testo
doc->get_Range()->Replace(u"sad", u"bad", System::MakeObject<FindReplaceOptions>(FindReplaceDirection::Forward));

// Salva il documento aggiornato 
doc->Save(u"updated.doc");

Trova e sostituisci testo usando le espressioni regolari

Puoi anche definire le espressioni regolari per trovare e sostituire le parole che seguono uno schema particolare. Ad esempio, puoi sostituire le parole “triste” e “matto” con la parola “cattivo”. Di seguito sono riportati i passaggi per trovare e sostituire le parole che corrispondono a un’espressione regolare in un documento di Word.

L’esempio di codice seguente mostra come trovare e sostituire il testo usando l’espressione regolare in C++.

// Carica documento MS Word
System::SharedPtr<Document> doc = System::MakeObject<Document>(u"Document.doc");

// Crea opzioni di ricerca e sostituzione
System::SharedPtr<FindReplaceOptions> options = System::MakeObject<FindReplaceOptions>();

// Trova e sostituisci il testo
doc->get_Range()->Replace(System::MakeObject<System::Text::RegularExpressions::Regex>(u"[s|m]ad"), u"bad", options);

// Salva il documento aggiornato 
doc->Save(u"updated.doc");

Trova e sostituisci testo usando i metacaratteri

In alcuni casi, il testo che vuoi sostituire potrebbe includere le interruzioni, ad esempio interruzione di riga, interruzione di paragrafo, interruzione di sezione, ecc. Per gestire tali scenari, Aspose.Words per C++ supporta i seguenti metacaratteri nelle stringhe di ricerca e sostituzione .

  • &p per un’interruzione di paragrafo
  • &b per l’interruzione di sezione
  • &m per l’interruzione di pagina
  • &l per un’interruzione di riga manuale

Nell’esempio di codice seguente viene illustrato come trovare e sostituire il testo utilizzando metacaratteri in un documento di Word.

// Carica documento MS Word
System::SharedPtr<Document> doc = System::MakeObject<Document>(u"Document.doc");

// Crea opzioni di ricerca e sostituzione
System::SharedPtr<FindReplaceOptions> options = System::MakeObject<FindReplaceOptions>();

// Trova e sostituisci il testo
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);

// Salva il documento aggiornato 
doc->Save(u"updated.doc");

Ignora il testo durante l’operazione Trova e sostituisci

Aspose.Words per C++ consente inoltre di ignorare il testo all’interno dei campi e le revisioni durante l’operazione di ricerca e sostituzione. La classe FindReplaceOptions consente di specificare le opzioni per aggiungere questa personalizzazione. La classe FindReplaceOptions fornisce i metodi seguenti per ignorare il testo in diversi scenari:

Nell’esempio di codice seguente viene illustrato come ignorare il testo in ciascuno degli scenari sopra indicati.

// Carica documento MS Word
System::SharedPtr<Document> doc = System::MakeObject<Document>(u"Document.doc");

// Crea opzioni di ricerca e sostituzione
System::SharedPtr<FindReplaceOptions> options = System::MakeObject<FindReplaceOptions>();

// Sostituisci 'e' nel documento ignorando il testo all'interno del campo
options->set_IgnoreFields(true);
doc->get_Range()->Replace(System::MakeObject<Regex>(u"e"), u"*", options);

// Sostituisci 'e' nel documento ignorando il testo eliminato
options->set_IgnoreDeleted(true);
doc->get_Range()->Replace(System::MakeObject<Regex>(u"e"), u"*", options);

// Sostituisci 'e' nel documento ignorando il testo inserito
options->set_IgnoreInserted(true);
doc->get_Range()->Replace(System::MakeObject<Regex>(u"e"), u"*", options);

// Salva il documento aggiornato 
doc->Save(u"updated.doc");

Ottieni una licenza gratuita

Puoi ottenere una licenza temporanea gratuita per provare l’API senza limitazioni di valutazione.

Conclusione

In questo articolo, hai visto come trovare e sostituire il testo nei documenti di Word usando C++. La guida passo passo e gli esempi di codice hanno mostrato come personalizzare la funzione trova e sostituisci in diversi scenari. Puoi esplorare di più sull’API di automazione di Word C++ usando documentazione.

Guarda anche