Как грамотно добавить bookmarks в цикле?

  • Автор темы Автор темы Sekir
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

Sekir

Участник
Топикстартер
Сообщения
191
Реакции
1
Здравствуйте всем!

Как то в форуме по данной теме не очень.

Суть проблемы такова:
Поиском в скрипте получается список объектов (абзацев) текста. Затем на каждый найденный объект добавляется закладка (сначала HyperlinkTextDestinations.add потом Bookmarks.add). Иногда HyperlinkTextDestinations.add начинает портить массив найденных абзацев...

Может кто знает в чем проблема или подскажет работающий метод расстановки закладок в тексте? За пример с кодом JS буду особенно благодарен ).

Спасибо заранее.
 
Ответ: Как грамотно добавить bookmarks в цикле?

А что значит "портить массив найденных абзацев"?
Можно подробнее?
 
Ответ: Как грамотно добавить bookmarks в цикле?

ragman сказал(а):
А что значит "портить массив найденных абзацев"?
Можно подробнее?

Заранее извиняюсь если не совсем внятно...

Есть массив FindedTextsArray с результатами поиска. Каждый элемент - абзац оканчивающийся \r. После выполнения hyperlinkTextSources.add с первым элементом массива иногда в 1-м элементе массива \r убирается, и почему-то прибавляется к началу второго эл-та. Когда делаем hyperlinkTextSources.add со вторым в третьем к началу прибавляется \r и последний знак предыдущего эл-та и т.д.
Соответственно где-то на 3-ей итерации получается полная белиберда с hyperlinks и bookmarks ((.
 
Ответ: Как грамотно добавить bookmarks в цикле?

Очень похоже на то, что к началу помечаемого абзаца добавляется один спецсимвол, отвечающий за hyperlinkTextSources. Соответственно в найденном часиве длина абзаца не увеличивается и символ конца абзаца "уезжает" за пределы найденого, смещая таким образом весь последующий текст.
Попробуй либо инвертировать массив с результатами поиска и цикл оставить как есть, либо цикл сделать от конца массива к началу.
 
Ответ: Как грамотно добавить bookmarks в цикле?

Увы и тот и другой вариант не помогают ((

Может есть вариант как не использовать hyperlinkTextDestinations.add при создании bookmarks?
 
Ответ: Как грамотно добавить bookmarks в цикле?

Тогда попробуй запускать поиск каждый раз после добавления hyperlinkTextDestination...
Скорость, конечно упадет, но зато проблемы должны уйти.
 
Ответ: Как грамотно добавить bookmarks в цикле?

ragman сказал(а):
Тогда попробуй запускать поиск каждый раз после добавления hyperlinkTextDestination...
Скорость, конечно упадет, но зато проблемы должны уйти.

Логично )). Только как исключать из поиска уже отработанное...

А вот есть еще мысль - настроить поиск таким образом, чтобы находился текст без знака завершения абзаца или в найденных результатах исключать эти символы. Это возможно принципиально?

Пробовал применять в найденном абзаце remove к последнему символу, но увы страдает и оригинал (тескт в документе).
 
Ура - заработало!!!

Спасибо, ragman - прав на 100%. Просто сначала я неправильно инвертировал массив.

Для тех кому интересна данная тема - hyperlinkTextDestinations.add нужно делать начиная с последнего элемента массива найденного текста.

Тема вроде как исчерпана.
 
Статус
Закрыто для дальнейших ответов.