Тема: Убрать\добавить скобки из текста

Доброе время суток.
Подскажите плиз есть ли лисп который убирал/добавлял бы в однострочный, многострочный текст скобки?
Если нет то может напишете какое нибудь решение.
У меня есть много текстов (отметок), они в скобках, которые нужно убрать.
Спасибо.

Re: Убрать\добавить скобки из текста

Вот, попробуй

(defun c:test (/)
  (vl-load-com)
  (initget "Добавить Удалить")
  (setq
    geo_flag_skob (if geo_flag_skob
            geo_flag_skob
            "Добавить"
          )
    flag_vvod      (getkword (strcat "[Добавить/Удалить] скобки <"
                    geo_flag_skob
                    ">:"
                )
          )
    geo_flag_skob (if flag_vvod
            flag_vvod
            geo_flag_skob
          )
    i -1
  )
  (if (= geo_flag_skob "Добавить")
    (progn
      (setq nabor
         (ssget
           '((0 . "*text") (-4 . "<NOT") (1 . "(*)") (-4 . "NOT>"))
         )
      )
      (repeat (sslength nabor)
    (setq vla_obj (vlax-ename->vla-Object
            (ssname nabor (setq i (1+ i)))
              )
    )
    (vla-put-textstring
      vla_obj
      (strcat "(" (vla-get-textstring vla_obj) ")")
    )
      )
    )
    (progn
      (setq nabor
         (ssget
           '((0 . "*text")(1 . "(*)"))
         )
      )
      (repeat (sslength nabor)
    (setq vla_obj (vlax-ename->vla-Object
            (ssname nabor (setq i (1+ i)))
              )
    )
    (vla-put-textstring
      vla_obj
      (vl-string-trim "()" (vla-get-textstring vla_obj))
    )
      )
    )
  )
)

Re: Убрать\добавить скобки из текста

Отлично, огромное спасибо, то что надо, работает :)

(изменено: Vidocq, 8 марта 2010г. 18:57:40)

Re: Убрать\добавить скобки из текста

Disney
При попытке добавить скобки к тексту заключённому в скобки, ещё одни не добавляет. Тогда зачем предлагать диалог : Добавить/удалить? Не лучше было-бы без него - указал на текст, если скобки есть - они удалятся, нет - добавятся?

З.Ы. И добавить возможность групповой обработки текстовых объектов.

Re: Убрать\добавить скобки из текста

А Find не катит?

Re: Убрать\добавить скобки из текста

Vidocq, а зачем тебе вторые скобки?
Убрать\добавить скобки из текста
Victor, через поиск можно только удалить скобки, и то не за раз, сперва в начале, а потом в конце. А вот добавить скобки, боюсь не получиться, не понимает AutoCAD Найти: * Заменить на: (*)

Re: Убрать\добавить скобки из текста

Disney
О вторых скобках я написал во втором предложении - зачем тогда предлагать диалог - добавить или убрать - если не подразумевать добавление ещё одних скобок к тексту, суть в этом, а вторые скобки естественно не нужны.

Re: Убрать\добавить скобки из текста

Vidocq пишет:

зачем тогда предлагать диалог - добавить или убрать - если не подразумевать добавление ещё одних скобок к тексту, суть в этом, а вторые скобки естественно не нужны.

Потому что, на пример в чертеже 572 текста, из них к 128 уже добавлены скобки в ручную, нужно добавить к оставшимся 444 текстам, но чтобы не париться не выбирать среди 572 текстов нужные 444, мы выделяем все а программа сама выберет только тексты без скобок, т.к. мы сказали ей(программе) что хотим добавить скобки, и следуя логике она не будет выбирать тексты уже имеющие скобки. То же самое и наиборот см картинку в предыдущем посте.
А ты предлагаешь не добавить\удалить а инвертировать, если бы стаяла подобная задача, то конечно, так даже на самом деле проще, но ведь требовалось

Сергей К пишет:

лисп который убирал/добавлял бы в однострочный, многострочный текст скобки?

Re: Убрать\добавить скобки из текста

программа от Disney работает так как я и просил :)
как вариант Disney может ее доработать
1. Убрать/добавить скобки (это как щас есть)
2. Добавить скобки туда, где их нет и не добавлять туда где они уже есть :)