hitta och ersätta text i Word C++

Hitta och ersätt är en användbar funktion som tillhandahålls av MS Word som låter dig uppdatera alla förekomster av en viss text på en gång. Du behöver alltså inte leta upp och ersätta texten i hela dokumentet manuellt. I den här artikeln kommer du att lära dig hur du hittar och ersätter text i Word-dokument från C++-program. Detta kan vara användbart när du behöver ersätta en viss text i ett antal dokument på en gång.

C++ API för att hitta och ersätta text

Aspose.Words for C++ är ett C++-bibliotek för att skapa nya och manipulera befintliga Word-dokument. API:et stöder ett brett utbud av grundläggande såväl som avancerade Word-automatiseringsfunktioner. Du kan ladda ner API-paketet eller installera det med NuGet.

Install-Package Aspose.Words.Cpp

Hitta och ersätt text i Word-dokument med C++

Följande är stegen för att hitta och ersätta text i Word-dokument med Aspose.Words för C++.

  • Ladda Word-dokumentet med klassen Document.
  • Byt ut det önskade ordet med Document->getRange()->Replace(u"sad", u"bad", System::MakeObject ) metod.
  • Spara det uppdaterade Word-dokumentet med metoden Dokument->Spara(String).

Följande kodexempel visar hur du hittar och ersätter ordet “tråkigt” med “dåligt” i ett Word-dokument med C++.

// Ladda MS Word-dokument
System::SharedPtr<Document> doc = System::MakeObject<Document>(u"Document.doc");

// Hitta och ersätt texten
doc->get_Range()->Replace(u"sad", u"bad", System::MakeObject<FindReplaceOptions>(FindReplaceDirection::Forward));

// Spara det uppdaterade dokumentet 
doc->Save(u"updated.doc");

Hitta och ersätt text med hjälp av reguljära uttryck

Du kan också definiera de reguljära uttrycken för att hitta och ersätta de ord som följer ett visst mönster. Du kan till exempel ersätta orden “ledsen” och “tokig” med ordet “dålig”. Följande är stegen för att hitta och ersätta ord som matchar ett reguljärt uttryck i ett Word-dokument.

Följande kodexempel visar hur du hittar och ersätter text med reguljära uttryck i C++.

// Ladda MS Word-dokument
System::SharedPtr<Document> doc = System::MakeObject<Document>(u"Document.doc");

// Skapa sök- och ersätt-alternativ
System::SharedPtr<FindReplaceOptions> options = System::MakeObject<FindReplaceOptions>();

// Hitta och ersätt texten
doc->get_Range()->Replace(System::MakeObject<System::Text::RegularExpressions::Regex>(u"[s|m]ad"), u"bad", options);

// Spara det uppdaterade dokumentet 
doc->Save(u"updated.doc");

Hitta och ersätt text med meta-tecken

I vissa fall kan texten du vill ersätta inkludera brytningarna, dvs radbrytning, styckebrytning, avsnittsbrytning, etc. För att hantera sådana scenarier stöder Aspose.Words för C++ följande metatecken i sök- och ersättningssträngarna .

  • &p för en styckebrytning
  • &b för avsnittsbrytning
  • &m för sidbrytning
  • &l för manuell radbrytning

Följande kodexempel visar hur du hittar och ersätter text med hjälp av meta-tecken i ett Word-dokument.

// Ladda MS Word-dokument
System::SharedPtr<Document> doc = System::MakeObject<Document>(u"Document.doc");

// Skapa sök- och ersätt-alternativ
System::SharedPtr<FindReplaceOptions> options = System::MakeObject<FindReplaceOptions>();

// Hitta och ersätt texten
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);

// Spara det uppdaterade dokumentet 
doc->Save(u"updated.doc");

Ignorera text under Sök och ersätt

Aspose.Words för C++ låter dig också ignorera texten i fält och ändringarna under sök- och ersätt-operationen. Klassen FindReplaceOptions låter dig ange alternativen för att lägga till denna anpassning. Klassen FindReplaceOptions tillhandahåller följande metoder för att ignorera text i olika scenarier:

Följande kodexempel visar hur man ignorerar text i vart och ett av de ovan nämnda scenarierna.

// Ladda MS Word-dokument
System::SharedPtr<Document> doc = System::MakeObject<Document>(u"Document.doc");

// Skapa sök- och ersätt-alternativ
System::SharedPtr<FindReplaceOptions> options = System::MakeObject<FindReplaceOptions>();

// Byt ut "e" i dokumentet utan att texten i fältet ignoreras
options->set_IgnoreFields(true);
doc->get_Range()->Replace(System::MakeObject<Regex>(u"e"), u"*", options);

// Ersätt "e" i dokumentet och ignorera raderad text
options->set_IgnoreDeleted(true);
doc->get_Range()->Replace(System::MakeObject<Regex>(u"e"), u"*", options);

// Ersätt "e" i dokumentet och ignorerar infogat text
options->set_IgnoreInserted(true);
doc->get_Range()->Replace(System::MakeObject<Regex>(u"e"), u"*", options);

// Spara det uppdaterade dokumentet 
doc->Save(u"updated.doc");

Skaffa en gratis licens

Du kan skaffa en gratis tillfällig licens för att prova API:et utan utvärderingsbegränsningar.

Slutsats

I den här artikeln har du sett hur du hittar och ersätter text i Word-dokument med C++. Steg-för-steg-guiden och kodexemplen har visat hur man anpassar sök- och ersätt-funktionen i olika scenarier. Du kan utforska mer om C++ Word automation API med dokumentation.

Se även