- (defun c:swaptext ( / patlist str len pos)
- (setq str "250X550 SC 100+200 NT" patlist '("###X###" "###+###"))
- (mapcar '(lambda (pat / match)
- (if (wcmatch str (strcat "*" pat "*"))
- (setq len (strlen str) pos (1+ (vl-string-position (ascii (substr pat 4 1)) str))
- str (vl-string-subst
- (strcat (substr str (1+ pos) 3) (substr str pos 1) (substr str (- pos 3) 3) )
- (substr str (- pos 3) 7) str )))) patlist)
- (cond
- ((wcmatch str "*NT*")(setq str (vl-string-subst "ML" "NT" str)))
- ((wcmatch str "*ML*")(setq str (vl-string-subst "NT" "ML" str))))
- str
- )
使用固定文本进行测试,但您当然可以将str作为参数
gr.Rlx |