Skip to main content

Метод Position::compare

Метод сравнивает заданную позицию с текущей.

Вызов​


boost::optional<int> compare(Position other)

Параметры​

  • other: позиция для сравнения с текущей, тип Position.

Возвращает​

  • положительное расстояние, если текущая позиция больше заданной.
  • отрицательное расстояние, если текущая позиция меньше заданной.
  • 0, если позиции равны.
  • boost::none, если позиции нельзя сравнить (позиции в разных документах, в тексте и в колонтитуле и т.д.).

Примеры для текстового документа​


Table table1 = document.getRange().getBegin().insertTable(2, 2, "table1");
Position positionDoc = document.getRange().getBegin();
Position positionTable = table1.getRange().getBegin();
Position positionCell = table1.getCell(CellPosition(0, 0)).getRange().getBegin();

if (positionDoc.compare(positionTable).get() + positionTable.compare(positionCell).get() == 0)
{
document.getRange().getBegin().insertText("Some text");
}

Position positionBegin = document.getRange().getBegin();
Position positionEnd = document.getRange().getEnd();

std::printf("%d", positionBegin.compare(positionEnd).get()); // -10
std::printf("%d", positionEnd.compare(positionBegin).get()); // 10

Пример для табличного документа​


Table sheet = document.getBlocks().getTable(0).get();

Position firstCellEnd = sheet.getCell("A1").getRange().getEnd();
Position secondCellBegin = sheet.getCell("B1").getRange().getBegin();

std::printf("%d", firstCellEnd.compare(secondCellBegin).get()); // 0