buscar y reemplazar texto en Word C++

Buscar y reemplazar es una función útil proporcionada por MS Word que le permite actualizar todas las apariciones de un texto en particular a la vez. Por lo tanto, no tiene que buscar y reemplazar manualmente el texto en todo el documento. En este artículo, aprenderá a buscar y reemplazar texto en documentos de Word desde aplicaciones C++. Esto podría ser útil cuando necesite reemplazar un texto en particular en varios documentos de una sola vez.

API de C++ para buscar y reemplazar texto

Aspose.Words for C++ es una biblioteca de C++ para crear nuevos documentos de Word y manipularlos. La API es compatible con una amplia gama de funciones básicas y avanzadas de automatización de Word. Puede descargar el paquete API o instalarlo mediante NuGet.

Install-Package Aspose.Words.Cpp

Buscar y reemplazar texto en documentos de Word usando C++

Los siguientes son los pasos para buscar y reemplazar texto en documentos de Word usando Aspose.Words for C++.

  • Cargue el documento de Word usando la clase Document.
  • Reemplace la palabra deseada usando Documento->getRange()->Replace(u"triste", u"malo", System::MakeObject ) método.
  • Guarde el documento de Word actualizado usando el método Document->Save(String).

El siguiente ejemplo de código muestra cómo buscar y reemplazar la palabra “triste” por “malo” en un documento de Word usando C++.

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

// Buscar y reemplazar el texto
doc->get_Range()->Replace(u"sad", u"bad", System::MakeObject<FindReplaceOptions>(FindReplaceDirection::Forward));

// Guardar el documento actualizado 
doc->Save(u"updated.doc");

Buscar y reemplazar texto usando expresiones regulares

También puede definir las expresiones regulares para buscar y reemplazar las palabras que siguen un patrón particular. Por ejemplo, puede reemplazar las palabras “triste” y “enojado” con la palabra “malo”. Los siguientes son los pasos para buscar y reemplazar palabras que coincidan con una expresión regular en un documento de Word.

El siguiente ejemplo de código muestra cómo buscar y reemplazar texto mediante expresiones regulares en C++.

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

// Crear opciones de buscar y reemplazar
System::SharedPtr<FindReplaceOptions> options = System::MakeObject<FindReplaceOptions>();

// Buscar y reemplazar el texto
doc->get_Range()->Replace(System::MakeObject<System::Text::RegularExpressions::Regex>(u"[s|m]ad"), u"bad", options);

// Guardar el documento actualizado 
doc->Save(u"updated.doc");

Buscar y reemplazar texto usando metacaracteres

En ciertos casos, el texto que desea reemplazar podría incluir saltos, es decir, salto de línea, salto de párrafo, salto de sección, etc. Para hacer frente a tales escenarios, Aspose.Words for C++ admite los siguientes metacaracteres en las cadenas de búsqueda y reemplazo .

  • &p para un salto de párrafo
  • &b para salto de sección
  • &m para salto de página
  • &l para un salto de línea manual

El siguiente ejemplo de código muestra cómo buscar y reemplazar texto usando metacaracteres en un documento de Word.

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

// Crear opciones de buscar y reemplazar
System::SharedPtr<FindReplaceOptions> options = System::MakeObject<FindReplaceOptions>();

// Buscar y reemplazar el 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);

// Guardar el documento actualizado 
doc->Save(u"updated.doc");

Ignorar texto durante la operación Buscar y reemplazar

Aspose.Words for C++ también le permite ignorar el texto dentro de los campos y las revisiones durante la operación de búsqueda y reemplazo. La clase FindReplaceOptions le permite especificar las opciones para agregar esta personalización. La clase FindReplaceOptions proporciona los siguientes métodos para ignorar texto en diferentes escenarios:

El siguiente ejemplo de código muestra cómo ignorar el texto en cada uno de los escenarios mencionados anteriormente.

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

// Crear opciones de buscar y reemplazar
System::SharedPtr<FindReplaceOptions> options = System::MakeObject<FindReplaceOptions>();

// Reemplace 'e' en el documento ignorando el texto dentro del campo
options->set_IgnoreFields(true);
doc->get_Range()->Replace(System::MakeObject<Regex>(u"e"), u"*", options);

// Reemplace 'e' en el documento ignorando el texto eliminado
options->set_IgnoreDeleted(true);
doc->get_Range()->Replace(System::MakeObject<Regex>(u"e"), u"*", options);

// Reemplace 'e' en el documento ignorando el texto insertado
options->set_IgnoreInserted(true);
doc->get_Range()->Replace(System::MakeObject<Regex>(u"e"), u"*", options);

// Guardar el documento actualizado 
doc->Save(u"updated.doc");

Obtenga una licencia gratis

Puede obtener una licencia temporal gratuita para probar la API sin limitaciones de evaluación.

Conclusión

En este artículo, ha visto cómo buscar y reemplazar texto en documentos de Word usando C++. La guía paso a paso y los ejemplos de código han mostrado cómo personalizar la característica de buscar y reemplazar en diferentes escenarios. Puede explorar más sobre la API de automatización de Word de C++ usando documentación.

Ver también