Тема: Записать в текст значение из текстового файла

Добрый день. Помогите в такой проблеме?
Суть
В основном штампе чертежа всегда пишется "название объекта". Так как проектировщиков много, каждый раз выясняется где последнее и какое правильное название объекта и от куда его можно скопировать.

Дано
я сделаю метку в чертеже штампа из многострочного текста с текстом пусть "objectname"
сделаю текстовый файл с название "название объекта.txt"
Чертеж со штампом и текстовый документ будут одной папке

Задача
И после применения лиспа заменить слово objectname тестового файла на текст из текстового документа.

Если не очень сложно помогите пожалуйста.
Спасибо.

Re: Записать в текст значение из текстового файла

Попробуй такой подход, единственное ограничение
не удалять мтекст после записи, только редактировать

;;;  WM.lsp
;;;  Загрузи этот лисп или оба, и в каждом листе чертежа выполни команду: WM, 
;;;  переключай вкладки и в командной строке пиши WM 
(defun C:WM (/ elist fd filename handle ltname mtext mtx)
  (setvar "cmdecho" 0)
  (while
    (not
      (and
        (setq mtx (car (entsel "\n Выбрать мультитекст в штампе: ")))
        (if mtx (setq elist (entget mtx)))
        (= (cdr (assoc 0 elist)) "MTEXT")
      ); end and
    ); end not
    (prompt "\nНичего, или не МТЕКСТ, выбирай снова.")
  ); end while
  (redraw mtx 3)
(setq ltname (cdr (assoc 410 elist))
    handle (cdr (assoc 5 elist))
      mtext (cdr (assoc 1 elist)))
(setq filename   
(cond ((not (findfile "objectname.txt"))
(strcat (getvar "dwgprefix")"objectname.txt"))
      (T (findfile "objectname.txt"))))
(setq fd (open filename "a"))
(write-line (strcat ltname "\t" handle "\t" mtext) fd)
(close fd)
  (prompt "\n Следующая вкладка или редактируй текстовый файл.\n")
  (princ)
  )
;;; RM.lsp
;;; Затем открываешь текстовый файл, не закрывая чертеж 
;;; в каждой строке двойной клик на каждом 3-ем элементе
;;; и вводишь нужное значение, не забывай разделять новые линии текста при этом   
;;; с разделителем \P (одна косая черта) для каждого 3-его элемента естественно   
;;; Сохраняешь текстовый файл, загружаешь этот лисп, пишешь в командной строке: RM


(defun C:RM(/ data elist fd filename handle i info mtx sset str->list txtline)
  ;; by gile
   (defun str->list ( str del / pos lst )
    (while (setq pos (vl-string-search del str))
        (setq lst (cons (substr str 1 pos) lst) 
              str (substr str (+ pos 1 (strlen del)))
        )
    )
    (reverse (cons str lst))
)
(if (not (findfile "objectname.txt"))(progn
(alert "Не найти файл \"objectname.txt\", выход.")(exit)(prijnc)))
  (setq filename (findfile "objectname.txt"))
  (setq fd (open filename "r"))
  (while (setq txtline (read-line fd))
    (setq info (str->list txtline "\t"))
    (setq data (append data (list info))))
  (close fd)
  (setq i -1)
  (repeat (length data)
    (setq info (nth (setq i (1+ i)) data))
    (setq sset (ssget "_X" (list (cons 0 "MTEXT")(cons 410 (car info)))))
    (while (setq mtx (ssname sset 0))
      (setq elist (entget mtx))
      (setq handle (cdr (assoc 5 elist)))
      (if (eq handle (cadr info))
    (progn
      (entmod (subst (cons 1 (caddr info))(assoc 1 elist) elist))
      (entupd mtx)))
      (ssdel mtx sset)))
  (alert "Проверяй измененные значения.")
  (princ)
  )
 

Re: Записать в текст значение из текстового файла

Спасибо за ответ, но к сожалению сильно громоздко и сложновато, да и не никто не будет выполнять такие операции, так как задача не выполняет условия требования: нажал кнопку - текст поменян.

нужно чтоб программа работала типа команды найти - заменить, где
найти - это слово "objectname"
а заменить - это содержимое текстового файла

Re: Записать в текст значение из текстового файла

щас пришла на ум немного другая идея

возможно ли заполнять значения "Свойства AutoCAD" из текстового файла?
если поля свойств будут заполняться автоматически, то в целом задача решена. У меня будет блок штампа с полями которые будут ссылаться на эти самые свойства

Re: Записать в текст значение из текстового файла

Это можно, ноя занят, на форумах должны быть кучи примеров
здесь или на dwg.ru