---
title: "Работа с коментари в C++"
---


{{% alert color="primary" %}}

**Опитайте онлайн**

Можете да опитате тази функционалност с нашата [Безплатни онлайн премахване на анотации](https://products.aspose.app/words/annotation).

{{% /alert %}}

Aspose.Words позволява на потребителите да работят с Коментари – Коментарите в документ Aspose.Words са представени от класа [Comment](https://reference.aspose.com/words/cpp/aspose.words/comment/). Също така използвайте класовете [CommentRangeStart](https://reference.aspose.com/words/cpp/aspose.words/commentrangestart/) и [CommentRangeEnd](https://reference.aspose.com/words/cpp/aspose.words/commentrangeend/), за да зададете областта от текста, която трябва да бъде свързана с коментар.

## Добави коментар

Aspose.Words Позволява ви да добавяте коментари по няколко начина:

1. Използване на клас [Comment](https://reference.aspose.com/words/cpp/aspose.words/comment/)
2. Използване на класовете [CommentRangeStart](https://reference.aspose.com/words/cpp/aspose.words/commentrangestart/) и [CommentRangeEnd](https://reference.aspose.com/words/net/aspose.words/commentrangeend/)

Следващият пример за код показва как да добавите коментар към абзац, като използвате клас **Comment**:

{{< gist "aspose-words-gists" "d55d8631947d283b1f0da99afa06c492" "cpp-Programming-Documents-Comments-AddComments-AddComments.cpp" >}}

Следващият пример за код показва как да добавите коментар към абзац, като използвате област от текст и класовете **CommentRangeStart** и **CommentRangeEnd**:

{{< gist "aspose-words-gists" "d55d8631947d283b1f0da99afa06c492" "cpp-Programming-Documents-Comments-AnchorComment-AnchorComment.cpp" >}}

## Извличане или премахване на коментари

Използването на коментари в документ Word (В допълнение към проследяването на промени) е често срещана практика при преглеждането на документи, особено когато има няколко рецензенти. Може да има ситуации, в които единственото нещо, от което се нуждаете от документ, са коментарите. Да речем, че искате да генерирате списък с резултатите от прегледите или може би сте събрали цялата полезна информация от документа и просто искате да премахнете ненужните Коментари. Може да искате да видите или премахнете коментарите на конкретен рецензент.

В тази извадка ще разгледаме някои прости методи както за събиране на информация от коментарите в документ, така и за премахване на коментари от документ. По-конкретно, ще разгледаме как да:

- Извлечете всички коментари от даден документ или само тези, направени от конкретен автор.
- Премахнете всички коментари от даден документ или само от определен автор.

### Как да извличате или премахвате Коментари

Кодът в тази извадка всъщност е доста прост и всички методи се основават на един и същ подход. Коментар в документ Word е представен от обект [Comment](https://reference.aspose.com/words/cpp/aspose.words/comment/) в модел Aspose.Words документ. За да съберете всички коментари в документ, използвайте метода [GetChildNodes](https://reference.aspose.com/words/cpp/aspose.words/compositenode/getchildnodes/) С първия параметър, зададен на [NodeType.Comment](https://reference.aspose.com/words/cpp/aspose.words/nodetype/). Уверете се, че вторият параметър на метода **GetChildNodes** е настроен вярно: това принуждава **GetChildNodes** да избира рекурсивно от всички дъщерни възли, вместо да събира само непосредствените деца.

За да илюстрираме как да извличаме и премахваме коментари от документ, ще преминем през следните стъпки::

1. Отваряне на документ Word с помощта на клас [Document](https://reference.aspose.com/words/cpp/aspose.words/document/)
1. Получаване на всички коментари от документа в колекция
1. Извличане на коментари:
   1. Преминете през колекцията, като използвате оператора за предна връзка
   1. Извлечете и Избройте името на автора, датата и часа и текста на всички коментари
   1. Извлечете и Избройте името на автора, датата и часа и текста на коментарите, написани от конкретен автор, в този случай авторът
1. Премахване на коментари:
   1. Връщане назад през колекцията с помощта на оператора
   1. Премахване на коментари
1. Запазване на промените

### Как да извлечете всички коментари

**GetChildNodes** методът е много полезен и можете да го използвате всеки път, когато трябва да получите списък с възли на документи от всякакъв тип. Получената колекция не създава непосредствени режийни, защото възлите са избрани в тази колекция само когато изброите или получите достъп до елементи в нея.

Следният пример за код показва как да извлечете името на автора, датата и часа и текста на всички коментари в документа:

{{< gist "aspose-words-gists" "d55d8631947d283b1f0da99afa06c492" "cpp-Programming-Documents-Comments-ProcessComments-ExtractComments.cpp" >}}

### Как да извлечете коментари от определен автор

След като сте избрали коментарни възли в колекция, всичко, което трябва да направите, е да извлечете информацията, от която се нуждаете. В тази извадка инициали на автора, дата, час и обикновен текст на коментара се комбинират в един низ; можете да изберете да го съхранявате по други начини.

Претовареният метод, който извлича коментарите от конкретен автор, е почти същият, той просто проверява името на автора, преди да добави информацията в масива.

Следният пример за код показва как да извлечете името на автора, датата и часа и текста на коментарите от посочения автор:

{{< gist "aspose-words-gists" "d55d8631947d283b1f0da99afa06c492" "cpp-Programming-Documents-Comments-ProcessComments-ExtractCommentsByAuthor.cpp" >}}

### Как да премахнете Коментари

Ако премахвате всички коментари, няма нужда да преминавате през колекцията, изтривайки коментарите един по един; можете да ги премахнете, като се обадите `NodeCollection.Clear` в колекцията от коментари.

Следният пример за код показва как да премахнете всички коментари в документа:

{{< gist "aspose-words-gists" "d55d8631947d283b1f0da99afa06c492" "cpp-Programming-Documents-Comments-ProcessComments-RemoveComments.cpp" >}}

Когато трябва избирателно да премахвате Коментари, процесът става по-подобен на кода, който използвахме за извличане на коментари.

Следният пример за код показва как да премахнете коментари от посочения автор:

{{< gist "aspose-words-gists" "d55d8631947d283b1f0da99afa06c492" "cpp-Programming-Documents-Comments-ProcessComments-RemoveCommentsByAuthor.cpp" >}}

Основното, което трябва да се подчертае тук, е използването на оператора. За разлика от простото извличане, тук искате да изтриете коментар. Подходящ трик е да се повтаря колекцията назад от последния коментар към първия. Причината за това ако започнете от края и се придвижите назад, индексът на предходните елементи остава непроменен и можете да се върнете към първия елемент в колекцията.

Следващият пример за код показва методите за извличане и премахване на коментарите:

{{< gist "aspose-words-gists" "d55d8631947d283b1f0da99afa06c492" "cpp-Programming-Documents-Comments-ProcessComments-ProcessComments.cpp" >}}

{{% alert color="primary" %}}

Можете да изтеглите примерния файл на този пример от [Aspose.Words GitHub](https://github.com/aspose-words/Aspose.Words-for-C/tree/master/Examples).

{{% /alert %}}

### Как да премахнете коментар между CommentRangeStart и CommentRangeEnd

С Aspose.Words можете също да премахвате Коментари между възлите **CommentRangeStart** и **CommentRangeEnd**.

Следният пример за код показва как да премахнете текст между **CommentRangeStart** и **CommentRangeEnd**:

{{< gist "aspose-words-gists" "d55d8631947d283b1f0da99afa06c492" "cpp-Programming-Documents-Comments-RemoveRegionText-RemoveRegionText.cpp" >}}

## Добавяне и премахване на коментар Отговор

Методът [AddReply](https://reference.aspose.com/words/cpp/aspose.words/comment/addreply/) добавя отговор на този коментар. Моля, имайте предвид, че поради съществуващите ограничения Microsoft в документа е разрешено само 1 ниво на отговори. Изключение от тип *InvalidOperationException* ще бъде повдигнато, ако този метод е извикан в съществуващия коментар за отговор.

Можете да използвате метода [RemoveReply](https://reference.aspose.com/words/cpp/aspose.words/comment/removereply/), за да премахнете посочения отговор на този коментар.

Следващият пример за код показва как да добавите отговор към коментар и да премахнете отговора на коментара:

{{< gist "aspose-words-gists" "d55d8631947d283b1f0da99afa06c492" "cpp-Programming-Documents-Comments-CommentReply-AddRemoveCommentReply.cpp" >}}

## Прочетете отговора на коментара

Собственост [Replies](https://reference.aspose.com/words/cpp/aspose.words/comment/get_replies/) връща колекция от **Comment** обекти, които са непосредствени деца на посочения коментар.

Следващият пример за код показва как да итерирате отговорите на коментар и да ги разрешите:

{{< gist "aspose-words-gists" "d55d8631947d283b1f0da99afa06c492" "cpp-Programming-Documents-Comments-ProcessComments-CommentResolvedandReplies.cpp" >}}
