Как программно поменять все точки в тексте на запятые?
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как программно поменять все точки в тексте на запятые?

Как программно поменять все точки в тексте на запятые?

Ответ
Поиск в этой теме
Непрочитано 26.08.2010, 11:42 #1
Как программно поменять все точки в тексте на запятые?
Spiteful Berkut
 
Инженер-конструктор
 
Россошь, Воронежская обл.
Регистрация: 13.12.2007
Сообщений: 307

Честно искал, но безрезультатно. Раньше и сам мог написать lisp'овский код за 5 минут. Но уже почти три года без практики. Подскажите, в каком направлении копать.

Забыл, блин. Поменять значения в тексте на чертеже.

Последний раз редактировалось Spiteful Berkut, 26.08.2010 в 12:03. Причина: Склероз
Просмотров: 5708
 
Непрочитано 26.08.2010, 11:48
#2
Nike

Шаражпроектхалтурмонтаж
 
Регистрация: 29.10.2004
Талды-Париж
Сообщений: 6,013


http://forum.dwg.ru/showpost.php?p=474324&postcount=3
Nike вне форума  
 
Непрочитано 26.08.2010, 11:51
#3
CB

Конструирование в области нефтеразведки
 
Регистрация: 10.02.2006
Гомель
Сообщений: 321


Код:
[Выделить все]
(vl-string-translate "," "." ",,,,,,,,")
CB вне форума  
 
Непрочитано 26.08.2010, 11:53
#4
Елпанов Евгений

программист
 
Регистрация: 20.12.2005
Москва
Сообщений: 1,439
Отправить сообщение для Елпанов Евгений с помощью Skype™


для данного конкретного случая, рекомендую такой код:
Код:
[Выделить все]
(vl-string-translate  "."  "," "45.3mm 45.2mm 45.1mm")
за один проход, заменяет сразу все точки на запятые, не зависимо от размера текста.

ps. обогнали...
Елпанов Евгений вне форума  
 
Автор темы   Непрочитано 26.08.2010, 11:59
#5
Spiteful Berkut

Инженер-конструктор
 
Регистрация: 13.12.2007
Россошь, Воронежская обл.
Сообщений: 307
<phrase 1=


Не, ребят, мне значение примитива поменять нужно. :-(
Про vl-string-translate я помню. Про доступ к данным примитива забыл начисто.

О. Заработало.
Код:
[Выделить все]
(defun C:DTC()
  (setq P1 (getpoint "Ткните в экран: ") P2 (getcorner "\nИ ещё раз: " P1)) ; Выбор объектов
  (setq nmset (ssget "_C" P2 P1)) ; Создание набора
  
  (setq i -1 setlength (sslength nmset)) ; Длина набора

  (repeat setlength
    (setq i (1+ i) nm (ssname nmset i))
    (setq sp_tx (entget nm))

    (if (= (cdr (assoc 0 sp_tx)) "TEXT")

      (progn
        (setq txt (cdr (assoc 1 sp_tx)))
	(setq txt (vl-string-translate "." "," txt))

	(setq upd (subst
		    (cons 1 txt)
		    (assoc 1 sp_tx)
		    sp_tx
		  ) ; end_subst
	) ; end_setq
	(entmod upd)
	(entupd nm)
      )
    )
  )
)

Последний раз редактировалось Spiteful Berkut, 26.08.2010 в 12:05. Причина: Ура! :-)
Spiteful Berkut вне форума  
 
Непрочитано 26.08.2010, 12:21
#6
getr

Конструктор
 
Регистрация: 06.04.2005
Из тех ворот-откуда весь народ.
Сообщений: 361
<phrase 1=


в прикрепленном файле есть команда замены запятых на точки..в обратном направлении наверно сможешь сам..
Вложения
Тип файла: lsp math.lsp (4.9 Кб, 127 просмотров)
__________________
"Мнение не бывает ни истинным, ни ложным, а лишь полезным в жизни или бесполезным. ",- Ауробиндо
И не надо делать удивленных движений руками.
getr вне форума  
 
Непрочитано 26.08.2010, 13:00
#7
Victor


 
Регистрация: 14.06.2009
Бат-Ям
Сообщений: 295


А смысл программно? Find
Victor вне форума  
 
Непрочитано 26.08.2010, 13:18
#8
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


find не катит?
gomer вне форума  
 
Непрочитано 26.08.2010, 13:44
#9
Елпанов Евгений

программист
 
Регистрация: 20.12.2005
Москва
Сообщений: 1,439
Отправить сообщение для Елпанов Евгений с помощью Skype™


замена во всем файле:
Код:
[Выделить все]
(defun c:test (/ s)
 (if (setq s (ssget "_x" '((0 . "TEXT"))))
  (foreach a (mapcar (function (lambda (a) (entget (cadr a)))) (ssnamex s))
   (entmod (append a (list (cons 1 (vl-string-translate "." "," (cdr (assoc 1 a)))))))
  )
 )
 (princ)
)

Последний раз редактировалось Елпанов Евгений, 03.09.2010 в 08:54.
Елпанов Евгений вне форума  
 
Автор темы   Непрочитано 26.08.2010, 14:10
#10
Spiteful Berkut

Инженер-конструктор
 
Регистрация: 13.12.2007
Россошь, Воронежская обл.
Сообщений: 307
<phrase 1=


Цитата:
Сообщение от gomer Посмотреть сообщение
find не катит?
Не катит. Плюсы тоже заменяются.
Spiteful Berkut вне форума  
 
Непрочитано 26.08.2010, 19:37
#11
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от Spiteful Berkut Посмотреть сообщение
Плюсы тоже заменяются.
gomer вне форума  
 
Непрочитано 26.08.2010, 20:42
#12
getr

Конструктор
 
Регистрация: 06.04.2005
Из тех ворот-откуда весь народ.
Сообщений: 361
<phrase 1=


->Spiteful Berkut
не поленись.. открой файл там скопируй часть лиспа где речь идет о замене ..поменяй местами знаки и все-можно работать...
__________________
"Мнение не бывает ни истинным, ни ложным, а лишь полезным в жизни или бесполезным. ",- Ауробиндо
И не надо делать удивленных движений руками.
getr вне форума  
 
Автор темы   Непрочитано 27.08.2010, 08:28
#13
Spiteful Berkut

Инженер-конструктор
 
Регистрация: 13.12.2007
Россошь, Воронежская обл.
Сообщений: 307
<phrase 1=


gomer, а ты попробуй поставить отметки VetCAD'ом, а потом Find'ом поменять точки на запятые. Плюсы и минусы так же поменяются на запятые. А так же ещё добрых полтора десятка символов. Хотя, надо помощь почитать по find'у. Может я ньюанс какой-то упустил. Но у меня строка !"№;%:?*()+-*/ преобразуется в ,,,,,,,,,,,,,,. Ищу точку "." и заменяю на запятую ",".

getr, у меня уже всё заработало. :-) Я прям горд собой. Что-то ещё помню.
Spiteful Berkut вне форума  
 
Непрочитано 27.08.2010, 09:44
#14
Disney

Геодезист
 
Регистрация: 12.03.2009
Сибирь (где медведи по улицам ходят)
Сообщений: 860
Отправить сообщение для Disney с помощью Skype™


Цитата:
Сообщение от Spiteful Berkut Посмотреть сообщение
Может я ньюанс какой-то упустил. Но у меня строка !"№;%:?*()+-*/ преобразуется в ,,,,,,,,,,,,,,. Ищу точку "." и заменяю на запятую ",".
убери галочку "Подстановочные знаки"
[IMG]http://s001.***********/i196/1008/29/ca8bc6c5b5f2.gif[/IMG]
__________________
Почему все вдруг становятся умными, когда уже не надо?
Disney вне форума  
 
Автор темы   Непрочитано 27.08.2010, 13:05
#15
Spiteful Berkut

Инженер-конструктор
 
Регистрация: 13.12.2007
Россошь, Воронежская обл.
Сообщений: 307
<phrase 1=


Disney, у меня 2007 AutoCAD. :-)

Да ладно уже. Меня и мой скрипт устраивает полностью. :-)
Spiteful Berkut вне форума  
 
Непрочитано 27.08.2010, 16:32
#16
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от Spiteful Berkut Посмотреть сообщение
Меня и мой скрипт устраивает полностью
заблокированные слои он обрабатывает?
gomer вне форума  
 
Автор темы   Непрочитано 27.08.2010, 19:01
#17
Spiteful Berkut

Инженер-конструктор
 
Регистрация: 13.12.2007
Россошь, Воронежская обл.
Сообщений: 307
<phrase 1=


Цитата:
Сообщение от gomer Посмотреть сообщение
заблокированные слои он обрабатывает?
Нет. Только то, что попадает в рамку. Но мне и этого достаточно.
Spiteful Berkut вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как программно поменять все точки в тексте на запятые?



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ищу пример расчета инсоляции FINE Поиск литературы, чертежей, моделей и прочих материалов 266 25.10.2017 18:54
Тригонометрические функции и векторная алгебра Supermax Программирование 149 08.12.2009 22:22
Программно выделить линии и объекты, имеющие точки соприкосновения SIvan Программирование 6 24.07.2008 07:50
Как можно программно поменять координаты ПЛинии Hans667 AutoCAD 8 03.03.2008 12:59