Ну в общем дело обстоит так:
Функция (_kpblc-mtext-clear) у меня почему-то стала работать нормально (проверялось на ADT 2005, 2006 eng), теперь проблема с очисткой.
Строку из многострочного текста получаю через
(setq string (_kpblc-clear-mtext (vlax-get-property item "textstring")))
А потом тут же делаю
(vlax-put-property
item
"textstring"
string
) ;_ end of vlax-put-property
И вот какие проблемы.
1. Работает ооочень медленно. Особенно при работе в листе.
2. На некоторых элементах мало того, что думает минуты по 2 (пауза именно на обработке строки), так еще под конец и вываливает сообщение о нехватке памяти (ERRNO # 0: no memory for string body: 188743738).
Чтобы не быть голословным, списки обрабатываемого примитива и необрабатываемого:
Подвергается обработке:
(
(-1 . <Entity name: 7ef899c0>)
(0 . "MTEXT")
(330 . <Entity name: 7ef88e90>)
(5 . "54B0")
(100 . "AcDbEntity")
(67 . 1)
(410 . "секция 9")
(8 . "03.Лист штамп")
(48 . 10.0)
(100 . "AcDbMText")
(10 284.252 42.8368 0.0)
(40 . 2.3)
(41 . 83.5938)
(71 . 1)
(72 . 5)
(1 . "{\\fTimes New Roman|b1|i1|c204|p18;Здесь идет текст, который можно обработать, т.е. потереть times new roman}")
(7 . "Standard")
(210 0.0 0.0 1.0)
(11 1.0 -1.1331e-015 0.0)
(42 . 75.3362)
(43 . 3.03295)
(50 . 6.28319)
(73 . 1)
(44 . 1.0)
)
Не подвергается:
(
(-1 . <Entity name: 7ef899c8>)
(0 . "MTEXT")
(330 . <Entity name: 7ef88e90>)
(5 . "54B1")
(100 . "AcDbEntity")
(67 . 1)
(410 . "секция 9")
(8 . "03.Лист штамп")
(48 . 10.0)
(100 . "AcDbMText")
(10 283.913 47.0995 0.0)
(40 . 2.3)
(41 . 83.5938)
(71 . 1)
(72 . 5)
(1 . "{\\fTimes New Roman|b1|i1|c204|p18;Многоэтажный жилой комплекс\\fTimes New
Roman|b1|i1|c0|p18; \\fTimes New Roman|b1|i1|c204|p18;по адресу:}")
(7 . "Standard")
(210 0.0 0.0 1.0)
(11 1.0 -1.1331e-015 0.0)
(42 . 67.03)
(43 . 3.03295)
(50 . 6.28319)
(73 . 1)
(44 . 1.0)
)
Т.е. получается, что функция обработки строки требует доработки специально для таких случаев - некорректной (?) записи (кстати, еще вопрос - а что будет, если группа 3 тоже будет задействована)? Кто в силах все предусмотреть, подключитесь, плиз! Фантазии уже просто не хватает!
Вариант "сделать из строки массив и по массиву проходиться с удалением элементов проверяю, но слишком высока верятность удалить чего-нить не то.
Т.е. надо добиться гарантированно правильной работы (это раз) и очень высокой скорости (это два).