Обработка математической формулы

Автор Massaraksh7, 17 ноября 2024, 23:20

0 Пользователи и 1 гость просматривают эту тему.

Massaraksh7

Почитал Питоньяка, разобрался в Вашем коде, Михаил, немного упростил его, и теперь буду переделывать интерфейс обмена.

mikekaganski

#16
"'--Переход к 1 символу" - это странная строка, зачем пропускать первый символ при поиске?


        while Right(cursor.String, 1) <> "}" '--Правый символ текста курсора = } ?, если да, то нашли
          cursor.goRight(1, true) '--След. символ курсора добавляется в cursor.string
        wend
Это теперь лучше переделать в
        do
          cursor.goRight(1, true)
        loop while Right(cursor.String, 1) <> "}"
потому что вначале мы знаем, что всё выделение - это "{", и правый символ точно не "}"
С уважением,
Михаил Каганский

Massaraksh7

Цитата: mikekaganski от 19 ноября 2024, 08:54зачем пропускать первый символ при поиске?
Согласен.
Цитата: mikekaganski от 19 ноября 2024, 08:54Это теперь лучше переделать в
Можно. Но так тоже работает.

Massaraksh7

Начал отладку. И, когда параграфы просто в файле, никаких проблем нет, файл Монолит3.odt. Если же параграфы находятся в таблице, то возникает ошибка при попытке создания курсора, файл Монолит6.odt.
Макрос wserver.

mikekaganski

Замените ThisComponent.getText на Parag.getText. Метод createTextCursorByRange работает только тогда, когда Range, передаваемый в него, принадлежит непосредственно этому объекту XText. А абзацы в таблице (и во многих других местах) принадлежат дочерним XText. Но абзац знает свой XText.
С уважением,
Михаил Каганский

Massaraksh7

Спасибо, Михаил. Без Вас я бы на этом месте долго топтался.