ค้นหาและแทนที่ข้อความใน Word C++

ค้นหาและแทนที่เป็นคุณสมบัติที่มีประโยชน์จาก MS Word ที่ให้คุณอัปเดตข้อความทั้งหมดที่ปรากฏพร้อมกัน ดังนั้น คุณไม่จำเป็นต้องค้นหาและแทนที่ข้อความในเอกสารทั้งหมดด้วยตนเอง ในบทความนี้ คุณจะได้เรียนรู้วิธีค้นหาและแทนที่ข้อความในเอกสาร Word จากภายในแอปพลิเคชัน C++ สิ่งนี้อาจมีประโยชน์เมื่อคุณต้องการแทนที่ข้อความเฉพาะในเอกสารหลายฉบับในคราวเดียว

C ++ API เพื่อค้นหาและแทนที่ข้อความ

Aspose.Words for C++ คือไลบรารี C++ สำหรับสร้างใหม่และจัดการเอกสาร Word ที่มีอยู่ API รองรับคุณสมบัติการทำงานอัตโนมัติของ Word ขั้นพื้นฐานและขั้นสูงที่หลากหลาย คุณสามารถ ดาวน์โหลด แพ็คเกจ API หรือติดตั้งโดยใช้ NuGet

Install-Package Aspose.Words.Cpp

ค้นหาและแทนที่ข้อความในเอกสาร Word โดยใช้ C++

ต่อไปนี้เป็นขั้นตอนในการค้นหาและแทนที่ข้อความในเอกสาร Word โดยใช้ Aspose.Words for C++

  • โหลดเอกสาร Word โดยใช้คลาส Document
  • แทนที่คำที่ต้องการโดยใช้ Document->getRange()->Replace(u"sad", u"bad", System::MakeObject ) กระบวนการ.
  • บันทึกเอกสาร Word ที่อัปเดตโดยใช้เมธอด Document->Save(String)

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีค้นหาและแทนที่คำว่า “sad” ด้วย “bad” ในเอกสาร Word โดยใช้ C++

// โหลดเอกสาร MS Word
System::SharedPtr<Document> doc = System::MakeObject<Document>(u"Document.doc");

// ค้นหาและแทนที่ข้อความ
doc->get_Range()->Replace(u"sad", u"bad", System::MakeObject<FindReplaceOptions>(FindReplaceDirection::Forward));

// บันทึกเอกสารที่อัปเดต 
doc->Save(u"updated.doc");

ค้นหาและแทนที่ข้อความโดยใช้นิพจน์ทั่วไป

คุณยังสามารถกำหนดนิพจน์ทั่วไปเพื่อค้นหาและแทนที่คำที่เป็นไปตามรูปแบบเฉพาะ ตัวอย่างเช่น คุณสามารถแทนที่คำว่า “sad” และ “mad” ด้วยคำว่า “bad” ต่อไปนี้เป็นขั้นตอนในการค้นหาและแทนที่คำที่ตรงกับนิพจน์ทั่วไปในเอกสาร Word

  • โหลดเอกสาร Word โดยใช้คลาส Document
  • ใช้คลาส Regex เพื่อกำหนด regex
  • แทนที่คำที่ต้องการโดยใช้ Document->getRange()->Replace(System::MakeObjectSystem::Text::RegularExpressions::Regex , คุณ “ไม่ดี”, ตัวเลือก) วิธี
  • บันทึกเอกสาร Word ที่อัปเดตโดยใช้เมธอด Document->Save(String)

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการค้นหาและแทนที่ข้อความโดยใช้นิพจน์ทั่วไปใน C++

// โหลดเอกสาร MS Word
System::SharedPtr<Document> doc = System::MakeObject<Document>(u"Document.doc");

// สร้างตัวเลือกการค้นหาและแทนที่
System::SharedPtr<FindReplaceOptions> options = System::MakeObject<FindReplaceOptions>();

// ค้นหาและแทนที่ข้อความ
doc->get_Range()->Replace(System::MakeObject<System::Text::RegularExpressions::Regex>(u"[s|m]ad"), u"bad", options);

// บันทึกเอกสารที่อัปเดต 
doc->Save(u"updated.doc");

ค้นหาและแทนที่ข้อความโดยใช้อักขระเมตา

ในบางกรณี ข้อความที่คุณต้องการแทนที่อาจมีตัวแบ่ง เช่น ตัวแบ่งบรรทัด ตัวแบ่งย่อหน้า ตัวแบ่งส่วน เป็นต้น เพื่อจัดการกับสถานการณ์ดังกล่าว Aspose.Words for C++ สนับสนุนอักขระเมตาต่อไปนี้ในสตริงการค้นหาและแทนที่ .

  • &p สำหรับตัวแบ่งย่อหน้า
  • &b สำหรับตัวแบ่งส่วน
  • &m สำหรับตัวแบ่งหน้า
  • &l สำหรับการขึ้นบรรทัดใหม่ด้วยตนเอง

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการค้นหาและแทนที่ข้อความโดยใช้อักขระเมตาในเอกสาร Word

// โหลดเอกสาร MS Word
System::SharedPtr<Document> doc = System::MakeObject<Document>(u"Document.doc");

// สร้างตัวเลือกการค้นหาและแทนที่
System::SharedPtr<FindReplaceOptions> options = System::MakeObject<FindReplaceOptions>();

// ค้นหาและแทนที่ข้อความ
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);

// บันทึกเอกสารที่อัปเดต 
doc->Save(u"updated.doc");

ละเว้นข้อความระหว่างการดำเนินการค้นหาและแทนที่

Aspose.Words for C++ ยังอนุญาตให้คุณละเว้นข้อความภายในฟิลด์และการแก้ไขระหว่างการค้นหาและแทนที่ คลาส FindReplaceOptions ให้คุณระบุตัวเลือกเพื่อเพิ่มการปรับแต่งนี้ คลาส FindReplaceOptions มีวิธีการต่อไปนี้เพื่อละเว้นข้อความในสถานการณ์ต่างๆ:

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีละเว้นข้อความในแต่ละสถานการณ์ที่กล่าวถึงข้างต้น

// โหลดเอกสาร MS Word
System::SharedPtr<Document> doc = System::MakeObject<Document>(u"Document.doc");

// สร้างตัวเลือกการค้นหาและแทนที่
System::SharedPtr<FindReplaceOptions> options = System::MakeObject<FindReplaceOptions>();

// แทนที่ 'e' ในเอกสารโดยไม่สนใจข้อความในฟิลด์
options->set_IgnoreFields(true);
doc->get_Range()->Replace(System::MakeObject<Regex>(u"e"), u"*", options);

// แทนที่ 'e' ในเอกสารโดยไม่สนใจข้อความที่ถูกลบ
options->set_IgnoreDeleted(true);
doc->get_Range()->Replace(System::MakeObject<Regex>(u"e"), u"*", options);

// แทนที่ 'e' ในเอกสารโดยไม่สนใจข้อความที่แทรก
options->set_IgnoreInserted(true);
doc->get_Range()->Replace(System::MakeObject<Regex>(u"e"), u"*", options);

// บันทึกเอกสารที่อัปเดต 
doc->Save(u"updated.doc");

รับใบอนุญาตฟรี

คุณสามารถ รับใบอนุญาตชั่วคราวได้ฟรี เพื่อทดลองใช้ API โดยไม่มีข้อจำกัดในการประเมิน

บทสรุป

ในบทความนี้ คุณได้เห็นวิธีค้นหาและแทนที่ข้อความในเอกสาร Word โดยใช้ C++ คำแนะนำทีละขั้นตอนและตัวอย่างโค้ดแสดงวิธีปรับแต่งคุณลักษณะการค้นหาและแทนที่ในสถานการณ์ต่างๆ คุณสามารถสำรวจเพิ่มเติมเกี่ยวกับ API การทำงานอัตโนมัติของ C++ Word ได้โดยใช้ เอกสารประกอบ

ดูสิ่งนี้ด้วย