(defun c:a_refum ( / alt neu refname refpfad reftyp naechster) ;--- Referenzname und -pfad umbenennen (print "ALLE Referenznamen und Referenzpfade umbenennen:") (print) ;Ersetzung definieren (setq alt "01-") ;?01-G... (setq neu "02-") ;?02-G... ;Ersetzung eingeben ; (setq alt (getstring "alt [01-]: ")) ; (setq neu (getstring "neu [02-]: ")) (setq naechster (tblnext "block" T )) ;ersten Tabelleneintrag lesen (while naechster (setq refpfad (cdr (assoc 1 naechster))) (if refpfad ;keine Referenz = nil (progn (setq reftyp (cdr(assoc 70 naechster))) ;Zahl! (if (or (= reftyp 44) ;šberlagerung (= reftyp 12) ;šberlagerung entfernt: mit einbeziehen, falls nicht gefundene Referenz! (= reftyp 36) ;Zuordnen ??? (= reftyp 4) ;Zuordnen entfernt: mit einbeziehen, falls nicht gefundene Referenz! ) (progn (setq refname (cdr (assoc 2 naechster))) ;neu (setq refname (vl-string-subst neu alt refname)) ;neuen Namen durch Ersetzen erzeugen (setq refpfad (vl-string-subst neu alt refpfad)) ;neuen Pfad durch Ersetzen erzeugen ; (command-s "-xref" "p" refname refpfad) ;sehr langsam! ;direkt in der Datenbank „ndern (setq edaten naechster) ;Datenliste (princ "\n") (princ "alt ") (princ edaten) (setq edaten (subst (cons 1 refpfad) (assoc 1 edaten) edaten)) ;neuer Pfad (setq edaten (subst (cons 2 refname) (assoc 2 edaten) edaten)) ;neuer Name (princ "\n") (princ "neu ") (princ edaten) (entmod edaten) ;Daten schreiben +++ das geht nicht +++ ) ;progn ) ;if ) ;progn ) ;if (setq naechster (tblnext "block")) ) ;while (princ) ) ;a_refum