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

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

Поиск и замена с использованием подстановочных знаков

Ответ
Поиск в этой теме
Непрочитано 06.08.2018, 19:23 #1
Поиск и замена с использованием подстановочных знаков
yurka52rus
 
Регистрация: 15.07.2010
Сообщений: 20

Добрый день

Столкнулся с проблемой: нужно массово заменить кучу (штук 300+) текстовых обозначений блока.

Сейчас у меня такой формат: 4.1-4.015-1.1 , а требуется привести к формату: 4.1-4.015-1-1 (предпоследний символ "точка" нужно заменить на "дефис").

При использовании в "Поиске и замене" подстановочных знаков типа *, ? и # автокад радостно меняет все символы в поисковой строке на эти самые - *, ? и #.

То есть я пишу в поисковой строке: "???????????.1" - заменить на "???????????-1" ну и получаю вместо обозначения блока кучу знаков вопроса.

Подскажите, можно ли решить данную проблему?
Просмотров: 3716
 
Непрочитано 06.08.2018, 20:57
#2
Oleg T


 
Регистрация: 27.12.2011
Сообщений: 1,458


Если говорить о приведенном примере, то надо менять
-1.1
на
-1-1
без всяких подстановочных знаков.
Oleg T вне форума  
 
Непрочитано 07.08.2018, 06:12
#3
Bull

Конструктор по сути (машиностроитель)
 
Регистрация: 10.10.2005
Набережные Челны (это где КамАЗ)
Сообщений: 11,391


Цитата:
Сообщение от Oleg T Посмотреть сообщение
то надо менять........без всяких подстановочных знаков.
Это надо знать, какая версия АКАД у автора. Возможны нюансы, если старая какая.
__________________
Век живи, век учись - ...
Bull вне форума  
 
Непрочитано 07.08.2018, 07:09
#4
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


Довольно давно, вот тут ссылка Андрей Бушман выкладывал инструмент для поиска и модификации текста с помощью регулярных выражений.

Если текстовые обозначения блоков находятся в атрибутах, то можете попробовать извлечь эти данные (ATTIN/ATTOUT или DYNIN/DYNOUT) и поменять в любом текстовом или табличном редакторе.
Boxa вне форума  
 
Автор темы   Непрочитано 07.08.2018, 08:00
#5
yurka52rus


 
Регистрация: 15.07.2010
Сообщений: 20


Версия новая (2018), подстановочные знаки отключить и включить можно. Но тупо поменять "-1.1" на "-1-1" не сработает, там очень много разных комбинаций, плюс кое-где они пересекаются с элементами, которые заменять не надо (как в примере в старт-топике - "4.1")
yurka52rus вне форума  
 
Непрочитано 07.08.2018, 08:24
1 | #6
Bull

Конструктор по сути (машиностроитель)
 
Регистрация: 10.10.2005
Набережные Челны (это где КамАЗ)
Сообщений: 11,391


Может вам тогда будет удобней не менять всё автоматом, а чтобы команда вывела список "-1.1" (галочка "результаты", нажать "найти"), а уж потом вы сами перебирали, где менять "-1.1" на "-1-1"?
__________________
Век живи, век учись - ...
Bull вне форума  
 
Непрочитано 07.08.2018, 09:20
1 | #7
Oleg T


 
Регистрация: 27.12.2011
Сообщений: 1,458


Цитата:
Сообщение от yurka52rus Посмотреть сообщение
Но тупо поменять "-1.1" на "-1-1" не сработает, там очень много разных комбинаций
В качестве возможного варианта.
Для работы с префиксами и суффиксами текстов и атрибутов давно уже пользуюсь своим макросом.
Может, пригодится. Но наверняка и другие найти можно, этот работает только с первым атрибутом блока.
Код:
[Выделить все]
 
;-------------------------------------------------------------------------------------------------------
;Программа работы с префиксами
;-------------------------------------------------------------------------------------------------------
(defun C:pref_str()
	(setq pr_sf 1) 
	(setq go_go (getint "\n Префикс: 1 - добавить, 2 - удалить:    "))
	(if
		(= go_go 1)
		(setq pref_n (getstring t "\nВведите значение префикса:    "))
		(setq pref_n (getint "\nВведите количество символов для удаления:    "))
		)
	(pref_suff)
)

;-------------------------------------------------------------------------------------------------------
;Программа работы с суффиксами
;-------------------------------------------------------------------------------------------------------
(defun C:suff_str()
	(setq pr_sf 2) 
	(setq go_go (getint "\n Суффикс: 1 - добавить, 2 - удалить:    "))
	(if
		(= go_go 1)
		(setq pref_n (getstring t "\nВведите значение суффикса:    "))
		(setq pref_n (getint "\nВведите количество символов для удаления:    "))
		)
	(pref_suff)
)


;-------------------------------------------------------------------------------------------------------
;Рабочая функция
;-------------------------------------------------------------------------------------------------------
(defun pref_suff()
	(setq nab (ssget))
	(setq kol (sslength nab))
	(setq nab1 (ssadd))
	(setq n -1)
	(repeat kol
		(setq n (+ n 1))
		(setq pr (ssname nab n))
		(setq pr_ (entget pr))
		(setq pr_ (assoc '0  PR_))
		(setq pr_ (cdr PR_))
		(if	(= pr_ "INSERT")
			(progn
				(setq pr1 (entnext pr))
				(setq pr1_ (entget pr1))
				(setq pr1_ (assoc '0  PR1_))
				(setq pr1_ (cdr PR1_))
				(if
					(= pr1_ "ATTRIB")
					(ssadd pr nab1)
				)
			)
		)
		(if
			(= pr_ "TEXT")
			(ssadd pr nab1)
		)
	)
	(setq kol (sslength nab1))
	(setq n -1)
	(repeat kol
		(setq n (+ n 1))
		(setq pr (ssname nab1 n))
		(setq pr_ (entget pr))
		(setq pr_naim (cdr(assoc '0 pr_)))
			(if
				(= pr_naim "INSERT")
				(setq pr_ (entget (entnext pr)))
			)
			(setq pr_old (assoc '1 pr_))
			(setq pr_old_ (cdr pr_old))
			(if	(= go_go 1)
				(if (= pr_sf 1)
					(setq pr_new (strcat pref_n pr_old_))
					(setq pr_new (strcat pr_old_ pref_n))
				)
				(progn
					(setq l_str (strlen pr_old_))
					(if	(> l_str pref_n)
						(if (= pr_sf 1)
							(setq pr_new (substr pr_old_ (+ pref_n 1)))
							(setq pr_new (substr pr_old_ 1 (- l_str pref_n)))
						)
						(setq pr_new pr_old_)
					)
				)
			)
		(setq pr_new (cons 1 pr_new))
		(setq pr_ (subst pr_new pr_old pr_))
		(entmod pr_)
	)
)

PS
Вот еще:
http://forum.dwg.ru/showthread.php?p=631342#post631342

Последний раз редактировалось Oleg T, 07.08.2018 в 10:22.
Oleg T вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Поиск и замена с использованием подстановочных знаков

Размещение рекламы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск и замена текста в группе файлов nik_mb Готовые программы 24 06.12.2023 08:38
Поиск и замена текста TechNick AutoCAD 183 13.12.2021 21:44
Поиск и замена содержимого дробного текста в таблицах AutoCad 2014 viktorgorodn AutoCAD 25 25.09.2020 10:56
Групповой поиск и замена текста Torino Программирование 22 05.03.2016 23:00
Различие функции поиск и замена (команда _find) последних версий AutoCad WeMaN AutoCAD 18 30.05.2013 13:40