tìm và thay thế văn bản trong Word C ++

Tìm và thay thế là một tính năng hữu ích được cung cấp bởi MS Word, cho phép bạn cập nhật tất cả các lần xuất hiện của một văn bản cụ thể cùng một lúc. Do đó, bạn không phải định vị và thay thế văn bản trong toàn bộ tài liệu theo cách thủ công. Trong bài viết này, bạn sẽ học cách tìm và thay thế văn bản trong tài liệu Word từ bên trong các ứng dụng C ++. Điều này có thể hữu ích khi bạn cần thay thế một văn bản cụ thể trong một số tài liệu trong một lần.

API C ++ để tìm và thay thế văn bản

Aspose.Words for C ++ là một thư viện C ++ để tạo mới và thao tác các tài liệu Word hiện có. API hỗ trợ một loạt các tính năng tự động hóa Word cơ bản cũng như nâng cao. Bạn có thể tải xuống gói API hoặc cài đặt nó bằng NuGet.

Install-Package Aspose.Words.Cpp

Tìm và thay thế văn bản trong tài liệu Word bằng C ++

Sau đây là các bước để tìm và thay thế văn bản trong tài liệu Word bằng cách sử dụng Aspose.Words dành cho C ++.

  • Tải tài liệu Word bằng lớp Tài liệu.
  • Thay thế từ mong muốn bằng cách sử dụng Document-> getRange() -> Replace (u “sad”, u “bad”, System :: MakeObject ) phương pháp.
  • Lưu tài liệu Word đã cập nhật bằng phương pháp Document-> Save (String).

Mẫu mã sau đây cho thấy cách tìm và thay thế từ “buồn” bằng “xấu” trong tài liệu Word sử dụng C ++.

// Tải tài liệu MS Word
System::SharedPtr<Document> doc = System::MakeObject<Document>(u"Document.doc");

// Tìm và thay thế văn bản
doc->get_Range()->Replace(u"sad", u"bad", System::MakeObject<FindReplaceOptions>(FindReplaceDirection::Forward));

// Lưu tài liệu đã cập nhật 
doc->Save(u"updated.doc");

Tìm và Thay thế Văn bản bằng Biểu thức Thông thường

Bạn cũng có thể xác định các biểu thức chính quy để tìm và thay thế các từ theo một mẫu cụ thể. Ví dụ, bạn có thể thay thế các từ “buồn” và “điên” bằng từ “tồi tệ”. Sau đây là các bước để tìm và thay thế các từ khớp với một biểu thức chính quy trong tài liệu Word.

Mẫu mã sau đây cho thấy cách tìm và thay thế văn bản bằng cách sử dụng biểu thức chính quy trong C ++.

// Tải tài liệu MS Word
System::SharedPtr<Document> doc = System::MakeObject<Document>(u"Document.doc");

// Tạo các tùy chọn tìm và thay thế
System::SharedPtr<FindReplaceOptions> options = System::MakeObject<FindReplaceOptions>();

// Tìm và thay thế văn bản
doc->get_Range()->Replace(System::MakeObject<System::Text::RegularExpressions::Regex>(u"[s|m]ad"), u"bad", options);

// Lưu tài liệu đã cập nhật 
doc->Save(u"updated.doc");

Tìm và Thay thế Văn bản bằng Meta-Characters

Trong một số trường hợp nhất định, văn bản bạn muốn thay thế có thể bao gồm các dấu ngắt, tức là ngắt dòng, ngắt đoạn, ngắt đoạn, v.v. Để đối phó với các trường hợp như vậy, Aspose. AdWords dành cho C ++ hỗ trợ các ký tự meta sau trong chuỗi tìm kiếm và thay thế .

  • & p để ngắt đoạn
  • & b cho ngắt phần
  • & m để ngắt trang
  • & l để ngắt dòng thủ công

Mẫu mã sau đây cho biết cách tìm và thay thế văn bản bằng cách sử dụng siêu ký tự trong tài liệu Word.

// Tải tài liệu MS Word
System::SharedPtr<Document> doc = System::MakeObject<Document>(u"Document.doc");

// Tạo các tùy chọn tìm và thay thế
System::SharedPtr<FindReplaceOptions> options = System::MakeObject<FindReplaceOptions>();

// Tìm và thay thế văn bản
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);

// Lưu tài liệu đã cập nhật 
doc->Save(u"updated.doc");

Bỏ qua Văn bản trong Thao tác Tìm và Thay thế

Aspose. AdWords dành cho C ++ cũng cho phép bạn bỏ qua văn bản trong các trường và các bản sửa đổi trong quá trình tìm và thay thế. Lớp FindReplaceOptions cho phép bạn chỉ định các tùy chọn để thêm tùy chỉnh này. Lớp FindReplaceOptions cung cấp các phương thức sau để bỏ qua văn bản trong các trường hợp khác nhau:

Mẫu mã sau đây cho thấy cách bỏ qua văn bản trong mỗi trường hợp được đề cập ở trên.

// Tải tài liệu MS Word
System::SharedPtr<Document> doc = System::MakeObject<Document>(u"Document.doc");

// Tạo các tùy chọn tìm và thay thế
System::SharedPtr<FindReplaceOptions> options = System::MakeObject<FindReplaceOptions>();

// Thay thế 'e' trong tài liệu bỏ qua văn bản bên trong trường
options->set_IgnoreFields(true);
doc->get_Range()->Replace(System::MakeObject<Regex>(u"e"), u"*", options);

// Thay thế 'e' trong tài liệu bỏ qua văn bản đã xóa
options->set_IgnoreDeleted(true);
doc->get_Range()->Replace(System::MakeObject<Regex>(u"e"), u"*", options);

// Thay thế 'e' trong tài liệu bỏ qua văn bản được chèn
options->set_IgnoreInserted(true);
doc->get_Range()->Replace(System::MakeObject<Regex>(u"e"), u"*", options);

// Lưu tài liệu đã cập nhật 
doc->Save(u"updated.doc");

Nhận giấy phép miễn phí

Bạn có thể nhận giấy phép tạm thời miễn phí để dùng thử API mà không có giới hạn đánh giá.

Sự kết luận

Trong bài viết này, bạn đã biết cách tìm và thay thế văn bản trong tài liệu Word bằng C ++. Hướng dẫn từng bước và các mẫu mã đã chỉ ra cách tùy chỉnh tính năng tìm và thay thế trong các tình huống khác nhau. Bạn có thể khám phá thêm về API tự động hóa C ++ Word bằng cách sử dụng tài liệu.

Xem thêm