Метод Aspose::Words::BookmarkCollection::get_Count
Содержание
[
Скрывать
]BookmarkCollection::get_Count method
Возвращает количество закладок в коллекции.
int32_t Aspose::Words::BookmarkCollection::get_Count()
Примеры
Показывает, как удалить закладки из документа.
auto doc = System::MakeObject<Aspose::Words::Document>();
auto builder = System::MakeObject<Aspose::Words::DocumentBuilder>(doc);
// Вставьте пять закладок с текстом внутри их границ.
for (int32_t i = 1; i <= 5; i++)
{
System::String bookmarkName = System::String(u"MyBookmark_") + i;
builder->StartBookmark(bookmarkName);
builder->Write(System::String::Format(u"Text inside {0}.", bookmarkName));
builder->EndBookmark(bookmarkName);
builder->InsertBreak(Aspose::Words::BreakType::ParagraphBreak);
}
// Эта коллекция хранит закладки.
System::SharedPtr<Aspose::Words::BookmarkCollection> bookmarks = doc->get_Range()->get_Bookmarks();
ASSERT_EQ(5, bookmarks->get_Count());
// Существует несколько способов удаления закладок.
// 1 - Вызов метода Remove у закладки:
bookmarks->idx_get(u"MyBookmark_1")->Remove();
ASSERT_FALSE(bookmarks->LINQ_Any(static_cast<System::Func<System::SharedPtr<Aspose::Words::Bookmark>, bool>>(static_cast<std::function<bool(System::SharedPtr<Aspose::Words::Bookmark> b)>>([](System::SharedPtr<Aspose::Words::Bookmark> b) -> bool
{
return b->get_Name() == u"MyBookmark_1";
}))));
// 2 - Передача закладки в метод Remove коллекции:
System::SharedPtr<Aspose::Words::Bookmark> bookmark = doc->get_Range()->get_Bookmarks()->idx_get(0);
doc->get_Range()->get_Bookmarks()->Remove(bookmark);
ASSERT_FALSE(bookmarks->LINQ_Any(static_cast<System::Func<System::SharedPtr<Aspose::Words::Bookmark>, bool>>(static_cast<std::function<bool(System::SharedPtr<Aspose::Words::Bookmark> b)>>([](System::SharedPtr<Aspose::Words::Bookmark> b) -> bool
{
return b->get_Name() == u"MyBookmark_2";
}))));
// 3 - Удаление закладки из коллекции по имени:
doc->get_Range()->get_Bookmarks()->Remove(u"MyBookmark_3");
ASSERT_FALSE(bookmarks->LINQ_Any(static_cast<System::Func<System::SharedPtr<Aspose::Words::Bookmark>, bool>>(static_cast<std::function<bool(System::SharedPtr<Aspose::Words::Bookmark> b)>>([](System::SharedPtr<Aspose::Words::Bookmark> b) -> bool
{
return b->get_Name() == u"MyBookmark_3";
}))));
// 4 - Удаление закладки по индексу в коллекции закладок:
doc->get_Range()->get_Bookmarks()->RemoveAt(0);
ASSERT_FALSE(bookmarks->LINQ_Any(static_cast<System::Func<System::SharedPtr<Aspose::Words::Bookmark>, bool>>(static_cast<std::function<bool(System::SharedPtr<Aspose::Words::Bookmark> b)>>([](System::SharedPtr<Aspose::Words::Bookmark> b) -> bool
{
return b->get_Name() == u"MyBookmark_4";
}))));
// Мы можем очистить всю коллекцию закладок.
bookmarks->Clear();
// Текст, который был внутри закладок, всё ещё присутствует в документе.
ASSERT_EQ(0, bookmarks->get_Count());
ASSERT_EQ(System::String(u"Text inside MyBookmark_1.\r") + u"Text inside MyBookmark_2.\r" + u"Text inside MyBookmark_3.\r" + u"Text inside MyBookmark_4.\r" + u"Text inside MyBookmark_5.", doc->GetText().Trim());
См. также
- Class BookmarkCollection
- Namespace Aspose::Words
- Library Aspose.Words for C++