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

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

Групповой поиск и замена текста

Ответ
Поиск в этой теме
Непрочитано 10.12.2003, 12:05 #1
Групповой поиск и замена текста
Torino
 
Штаб
Регистрация: 21.08.2003
Сообщений: 943

Необходимо в нескольких чертежах найти и заменить текст "ххх" на "ууу" в автоматическом режиме, т.е. алгоритм такой: я указываю чертежи, в которых необходимо провести изменения, открывается первый файл, отыскивается текст "ххх", меняется на текст "ууу", файл сохраняется, файл закрывается, открывается второй файл и т.д.
Вопрос: как?

И еще: как сделать замену текста "ххх" на "ууу" в тех же чертежах в блоках "bbb"? (текст в блоках не атрибут, а примитив)
Просмотров: 14106
 
Непрочитано 10.12.2003, 15:11
#2
{Smirnoff}

Инженер по системам безопасности
 
Регистрация: 23.11.2003
Рига
Сообщений: 1,099


юХЧУФЧХЕФШУС ЮФП ФЩ УЕТШЕЪОП ЧЪСМУС ЪБ лбд...

нПЦОП. оП ЧТЕНЕОЙ УЕКЮБУ ОЕФ. еУФШ РПЧПД ЧЪСФШУС ЪБ VBA...

с ФБН ЛУФБФЙ, РПЮФЙ ДПРЙУБМ "РПДТЕЪЛХ" У ПВЕЭБООЩНЙ ЙЪНЕОЕОЙСНЙ. пФПЫМА ОБ ДОСИ, ЕУФШ ЕЭЕ ПДЙО ОЕ ВПМШЫПК ЗМАЛ, Б ФБЛ РТЕЛТБУОП ХЦЕ ТБВПФБЕФ. уОБЮБМБ НПЦОП ЧЩВТБФШ УЛПМШЛП ХЗПДОП ЗТБОЙГ, Б ЪБ ФЕН УЛПМШЛП ХЗПДОП УЕЛХЭЙИ ПФТЕЪЛПЧ, ПФТЕЪЛЙ НПЦОП ПВТЩЧБФШ.
{Smirnoff} вне форума  
 
Непрочитано 10.12.2003, 15:15
#3
{Smirnoff}

Инженер по системам безопасности
 
Регистрация: 23.11.2003
Рига
Сообщений: 1,099


Oba na! Ti mozes procitatj prosloe soobshenie. Nu ladno, eto ja v gosti zasel v kontoru.
{Smirnoff} вне форума  
 
Непрочитано 10.12.2003, 17:03
#4
{Smirnoff}

Инженер по системам безопасности
 
Регистрация: 23.11.2003
Рига
Сообщений: 1,099


Прошу прощения. Влез в интернет со старой работы, а у них что-то с кодировкой.

>Torino Чувствуется что ты решил серьезно заняться АКАДом...

Можно сделать что ты просишь. Это повод заняться VBA, ради тренировки. Правда со временем плоховато. Короче пусть пока желающие потренируються, дадут ЦУ, БЦУ и ЕБЦУ. А я потом потренируюсь.
{Smirnoff} вне форума  
 
Автор темы   Непрочитано 10.12.2003, 18:24
#5
Torino


 
Регистрация: 21.08.2003
Штаб
Сообщений: 943
<phrase 1=


Хм...
Серьезно Акадом я занимаюсь уже четыре года.
Просто в программирование нет времени влазить, по-горло работы по специальности.
Вот и приходится пользоваться своими старыми наработками и опытом жильцов этого сайта

Так что буду благодарен за решение и этого вопроса.
От пива тебе и Вове не отказываюсь. Вот только как вы их получить хотите?..
Torino вне форума  
 
Непрочитано 10.12.2003, 18:56
#6
{Smirnoff}

Инженер по системам безопасности
 
Регистрация: 23.11.2003
Рига
Сообщений: 1,099


Пиво в общем то не требуеться. Понимаешь, а в КАДе всего чуть больше года, а в ЛИСП по моему где то в июне в первый раз написал (defun .... Работа у меня не совсем обычная для автокадчика и время свободное бывает. То что ты можешь придумать может никогда не придет мне в голову. А при решении всегда открываеться что либо новое. И вообще приятно это, когда выполняешь какую нибудь рутинную работу быстро. Всегда любил что нибудь смастерить, это из этой серии.


Так что пиши. По мере возможности и желания буду что нибудь карябать (больших авансов не даю). Сегодня ничего корябать не буду... Вот так!
{Smirnoff} вне форума  
 
Непрочитано 10.12.2003, 19:50
#7
Startrek

AutoCAD/AutoLISP
 
Регистрация: 27.08.2003
Seattle/USA
Сообщений: 1,133


>TORINO
Poiskat' nado v R14 est' lisp CHT.LSP on primitiven no rabotaet k sozhaleniju v otdel'no vzjatom chertezhe i ia ne sovsem uveren chto budet rabotat' s MTEXT. Mozhno poprobovat' ego ispol'zovat' so SCRIPT
kommandoi (napisat' script i pogliadet' chto poluchitsja
a izmenit' text (primitiv v bloke) zagliani na moju stranichku
http://home.pacifier.com/~nemi tam u menia est' TEXT UTILITIES v samom nachale sleva (tam mnogo fil;ov fse nuzhni) - de;aetr kakraz chto tebe nado (k sozhaleniu v tekushem chertezhe) hot' i ne sovsem chrto nado - vsetyaki luchshe chem nichego (better than nothing)
Eto vse chto na skoruju ruku prihodit v golovu (k sopzhaleniju vozitsja net vremeni) :roll: :roll:
Startrek вне форума  
 
Автор темы   Непрочитано 15.12.2003, 16:55
#8
Torino


 
Регистрация: 21.08.2003
Штаб
Сообщений: 943
<phrase 1=


Я не потерялся, я ищу R14
Torino вне форума  
 
Автор темы   Непрочитано 16.12.2003, 11:13
#9
Torino


 
Регистрация: 21.08.2003
Штаб
Сообщений: 943
<phrase 1=


Нашел программу chtext.lsp
Функции она выполняет те, что нужно, но в ручном режиме, а нужно в автоматическом.
Я нашел код, отвечающий за поиск и замену.
Может, Fantomas, глянешь, как его можно переработать? :wink:

Код:
[Выделить все]
;;; Change the text of an object
(defun cht_Text ( / ans)
  (setq sslen (sslength sset))
  (initget "Globally Individually Retype")
  (setq ans (getkword 
    "\nFind and replace text.  Individually/Retype/<Globally>:"))
  (setq cht_OrgTexteval (getvar "texteval"))
  (setvar "texteval" 1)
  (cond 
    ((= ans "Individually")
      (progn
        (initget "Yes No")
        (setq ans (getkword "\nEdit text in dialog? <Yes>:"))
      )
  
      (while (> sslen 0)
        (redraw (setq sn (ssname sset (setq sslen (1- sslen)))) 3)
        (setq ss (ssadd))
        (ssadd (ssname sset sslen) ss)
        (if (= ans "No") 
          (cht_Edit ss)
          (command "_.DDEDIT" sn "")
        )
        (redraw sn 1)
      )
    )
    ((= ans "Retype")
      (while (> sslen 0)
        (setq ent (entget (ssname sset (setq sslen (1- sslen)))))
        (redraw (cdr (assoc -1 ent)) 3)
        (prompt (strcat "\nOld text: " (cdr (assoc 1 ent))))
        (setq nt (getstring  T "\nNew text: "))
        (redraw (cdr (assoc -1 ent)) 1)
        (if (> (strlen nt) 0)
          (entmod (subst (cons 1 nt) (assoc 1 ent) ent))
        )
      )
    )
    (T
      (cht_Edit sset)   ;; Change all
    )
  )
  (setvar "texteval" cht_OrgTexteval)
)
Torino вне форума  
 
Непрочитано 30.03.2009, 16:20
#10
impianto


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


Сегодня создал аналогичную тему.. не углядел эту. Не нашлось решение?
impianto вне форума  
 
Непрочитано 31.03.2009, 01:12
#11
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772


Так что, дубль сносить?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 31.03.2009, 18:34
#12
impianto


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


Думаю да. Вопрос абсолютно аналогичен. Эта та в любом случае поднялась после комментов.
impianto вне форума  
 
Непрочитано 24.04.2009, 12:26
#13
u77


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


Цитата:
Сообщение от impianto Посмотреть сообщение
Сегодня создал аналогичную тему.. не углядел эту. Не нашлось решение?
если еще актуально , то может это подойти
SRXTEXT - search/replace with regular expressions
(C) 2008, XANADU a.s. http://www.xanadu.cz
или эта : FindAndChange
u77 вне форума  
 
Непрочитано 06.05.2009, 17:45
#14
impianto


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


Спасибо огромное! Потестил прогу, на примере одно файлика прекрасно работает. Теперь надо разобраться как сна несколько dwg применять. Такое всегда актуально. Не хочется тратить время на рутину, типа изменения текста в куче документов.
impianto вне форума  
 
Непрочитано 20.05.2009, 16:55
#15
impianto


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


Возник такой вопрос. Пользуясь программой srxtext, заметил закономерность. что если она находит что-либо в командной строке выдает 1 и наоборот о, когда не находит. Захотел это использовать, но не знаю как поймать эту единичку. простое приравнивание не помогает. Думал она ведет себя как функция, которая возвращает значени, но почему-то не получилось. Для чего это нужно: захотел запихать ее в while, чтобы выполнялась до тех пор пока не перестанет находить искомый текст. Как решается подобная проблема?
impianto вне форума  
 
Непрочитано 25.05.2009, 14:02
#16
CB

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


Цитата:
Сообщение от impianto Посмотреть сообщение
Думал она ведет себя как функция
Вобще-то она может использоваться как функция
Код:
[Выделить все]
 
(load "srxtext.vlx")
(srxtext "Substring" "oldtext" "newtext" "All")
CB вне форума  
 
Непрочитано 01.06.2009, 12:09
#17
impianto


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


Это все понятно. При вызове функции не учитывается момент, когда искомы текст встречается дважды в одном текстовом поле (мульти или однострочном - все равно) В таком случае он заменяет только первое найденное совпадение (внутри одного поля) Все остальные остаются нетронутыми. Для этого и решил использовать ее повторно. Это конечно частный случай, но как говорится любой разбор полезен для изученя языка. И заметил, что если текст нашелся, в коммандной строке выдает единичку, если нет 0. Про них я иговорил в прошлом посте.
impianto вне форума  
 
Непрочитано 20.05.2013, 14:54
#18
BraG_A


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


Добрый день, давно в этой теме никто не отписывался. В итоге Вам ( Torino) удалось найти решение?
ЗЫ. Хотя спустя 4 года врядли Торино ответит.

Проблема аналогичная , вообще необходимо выполнить перевод большого количества чертежей с одного языка на другой. Хотелось бы создать большой список файлов, с перечеслением всех возможных элементов и с их переводом , который переодически можно пополнять :
К примеру:

Vite - Болт
Dado - Гайка
Rondella - Шайба и т.д

И в результате выбрав N-ное количество файлов DWG прогонять их через данный алгоритм.

Если кто-либо знает что-то подобное , буду рад любому совету.
К сожалению с автолиспом незнаком, и автокадом владею на низком уровне.
BraG_A вне форума  
 
Непрочитано 20.05.2013, 15:47
#19
roaa

ОПС
 
Регистрация: 29.03.2012
Kazakhstan
Сообщений: 128


BraG_A! Попробуйте исполнить cht_Text с http://dwg.ru/dnl/11817
roaa вне форума  
 
Непрочитано 20.05.2013, 17:05
#20
bargool


 
Регистрация: 16.08.2006
Санкт-Петербург
Сообщений: 508
<phrase 1=


Batch Find & Replace Text может помочь
__________________
Алексей
bargool вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Групповой поиск и замена текста

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск