localizar e substituir texto no Word C++

Localizar e substituir é um recurso útil fornecido pelo MS Word que permite atualizar todas as ocorrências de um texto específico de uma só vez. Assim, você não precisa localizar e substituir o texto em todo o documento manualmente. Neste artigo, você aprenderá como localizar e substituir texto em documentos do Word em aplicativos C++. Isso pode ser útil quando você precisa substituir um texto específico em vários documentos de uma só vez.

API C++ para localizar e substituir texto

Aspose.Words for C++ é uma biblioteca C++ para criar novos e manipular documentos do Word existentes. A API oferece suporte a uma ampla variedade de recursos básicos e avançados de automação do Word. Você pode baixar o pacote da API ou instalá-lo usando NuGet.

Install-Package Aspose.Words.Cpp

Localizar e substituir texto em documentos do Word usando C++

A seguir estão as etapas para localizar e substituir texto em documentos do Word usando Aspose.Words para C++.

  • Carregue o documento do Word usando a classe Document.
  • Substitua a palavra desejada usando Document->getRange()->Replace(u"sad", u"bad", System::MakeObject ) método.
  • Salve o documento do Word atualizado usando o método Document->Save(String).

O exemplo de código a seguir mostra como localizar e substituir a palavra “triste” por “ruim” em um documento do Word usando C++.

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

// Localizar e substituir o texto
doc->get_Range()->Replace(u"sad", u"bad", System::MakeObject<FindReplaceOptions>(FindReplaceDirection::Forward));

// Salve o documento atualizado 
doc->Save(u"updated.doc");

Localizar e substituir texto usando expressões regulares

Você também pode definir as expressões regulares para localizar e substituir as palavras que seguem um padrão específico. Por exemplo, você pode substituir as palavras “triste” e “louco” pela palavra “ruim”. A seguir estão as etapas para localizar e substituir palavras correspondentes a uma expressão regular em um documento do Word.

O exemplo de código a seguir mostra como localizar e substituir texto usando expressão regular em C++.

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

// Criar opções de localizar e substituir
System::SharedPtr<FindReplaceOptions> options = System::MakeObject<FindReplaceOptions>();

// Localizar e substituir o texto
doc->get_Range()->Replace(System::MakeObject<System::Text::RegularExpressions::Regex>(u"[s|m]ad"), u"bad", options);

// Salve o documento atualizado 
doc->Save(u"updated.doc");

Localizar e substituir texto usando metacaracteres

Em certos casos, o texto que você deseja substituir pode incluir as quebras, ou seja, quebra de linha, quebra de parágrafo, quebra de seção, etc. .

  • &p para uma quebra de parágrafo
  • &b para quebra de seção
  • &m para quebra de página
  • &l para uma quebra de linha manual

O exemplo de código a seguir mostra como localizar e substituir texto usando metacaracteres em um documento do Word.

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

// Criar opções de localizar e substituir
System::SharedPtr<FindReplaceOptions> options = System::MakeObject<FindReplaceOptions>();

// Localizar e substituir o texto
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);

// Salve o documento atualizado 
doc->Save(u"updated.doc");

Ignorar texto durante a operação de localizar e substituir

Aspose.Words para C++ também permite que você ignore o texto dentro dos campos e as revisões durante a operação de localizar e substituir. A classe FindReplaceOptions permite especificar as opções para adicionar essa personalização. A classe FindReplaceOptions fornece os seguintes métodos para ignorar texto em diferentes cenários:

O exemplo de código a seguir mostra como ignorar texto em cada um dos cenários mencionados acima.

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

// Criar opções de localizar e substituir
System::SharedPtr<FindReplaceOptions> options = System::MakeObject<FindReplaceOptions>();

// Substitua 'e' no documento ignorando o texto dentro do campo
options->set_IgnoreFields(true);
doc->get_Range()->Replace(System::MakeObject<Regex>(u"e"), u"*", options);

// Substitua 'e' no documento ignorando o texto excluído
options->set_IgnoreDeleted(true);
doc->get_Range()->Replace(System::MakeObject<Regex>(u"e"), u"*", options);

// Substitua 'e' no documento ignorando o texto inserido
options->set_IgnoreInserted(true);
doc->get_Range()->Replace(System::MakeObject<Regex>(u"e"), u"*", options);

// Salve o documento atualizado 
doc->Save(u"updated.doc");

Obtenha uma licença gratuita

Você pode obter uma licença temporária gratuita para experimentar a API sem limitações de avaliação.

Conclusão

Neste artigo, você viu como localizar e substituir texto em documentos do Word usando C++. O guia passo a passo e os exemplos de código mostraram como personalizar o recurso localizar e substituir em diferentes cenários. Você pode explorar mais sobre a API de automação do C++ Word usando documentação.

Veja também