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
- Localizar e substituir texto em documentos do Word
- Use expressões regulares para localizar e substituir texto
- Substituir texto usando metacaracteres
- Ignorar texto durante a operação Localizar e substituir
- Obtenha Licença Gratuita
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.
- Carregue o documento do Word usando a classe Document.
- Use a classe Regex para definir a regex.
- Substitua a palavra desejada usando Document->getRange()->Replace(System::MakeObjectSystem::Text::RegularExpressions::Regex , u"ruim", opções).
- 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 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:
- setIgnoreFields(bool) - Ignores text inside the fields
- setIgnoreDeleted(bool) - Ignores text inside the delete revisions
- setIgnoreInserted(bool) - Ignores text inside the insert revisions
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.