Заменить таблицу в Richtext поле.

  • Автор темы wowa
  • Дата начала
W

wowa

RichText поле содержит текст и таблицы, мне нужно после определенной строки (например «Искомая строка»), удалить таблицу и на ее место вставить другую.

Я делаю следующим образом:

Код:
Rem Удаляю таблицу

Call rtnav.FindFirstString("Искомая строка",RT_FIND_CASEINSENSITIVE)

Call rtnav.FindNextElement(RTELEM_TYPE_TABLE)

Set rtTable = rtnav.GetElement

Call rtTable.Remove

Rem Определяю место для вставки таблицы

Call rtnav.FindFirstString("Искомая строка” RT_FIND_CASEINSENSITIVE)

Call rtitem.BeginInsert( rtnav,True) ‘(*)

Call rtitem.AddNewLine(1)

Call rtitem.AppendTable(4, 3)

Call rtitem.EndInsert
……
(*) Если True , то таблицу вставляет после всего текста в документе, если false – то перед искомой строкой.

Как сделать, чтобы таблица вставлялась вместо удаленной таблицы?
 
O

Omh

Может после удаления таблицы поставь на тот место какой-либо маркер, и потом после второго
Код:
Call rtnav.FindFirstString("Искомая строка” RT_FIND_CASEINSENSITIVE)
переходи на свой свежевставленный маркер, удаляй его и встявляй таблицу?
 
W

wowa

С маркером та же проблема, я его не могу поставить на место удаленной таблицы, он ставиться либо выше, либо после всего текста….
 
O

Omh

Давненько не работал с richText - всё из башки повылетало.
Слушай, там не может быть rtRange замешан?

Будет где-то в коде
Код:
Call rtitem.BeginInsert(rtRange, False)
, где rtRange - часть ричтекста, где раньше была таблица.

Мне кажется надо что-то такое.
 
O

Omh

Ну тогда фик знает.
Как вариант через DXL сделать, но это так, в качестве запасного.
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
мммм... есть предложение.. правда наверное не очень удобное
После этого
Код:
Rem Определяю место для вставки таблицы
Call rtnav.FindFirstString("Искомая строка" RT_FIND_CASEINSENSITIVE)
я написал такое ( "Искомая строка" у меня заканчивается "." )
Код:
Call rtnav.FindNextString(".")
Помогло. Таблица вставляется после точки
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!