最后一个。
- (defun c:tt ( / *error* regex str )
- (vl-load-com)
- (setq str "{\H1.1429x;?}<>{\H0.7x;\\S+0.1^-0.2;\H1.4286x;\C1;(small)}")
- (defun *error* ( msg )
- (LM:ReleaseObject regex)
- (or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")
- (princ (strcat "\n** Error: " msg " **")))
- (princ)
- )
- (setq regex (vlax-create-object "VBScript.RegExp"))
- (setq str (caar (LM:RegExExecute regex "\\\\S.[^;]*\\^.[^;]*;" str)))
- (setq str (caar (LM:RegExExecute regex "[^S]*\\^[^;]*" str)))
- (print (LM:RegExExecute regex "[^\\^]+" str))
- (LM:ReleaseObject regex)
- (princ)
- )
- (defun LM:RegExExecute ( regex pat str / l )
- ;; ? Lee Mac 2010
- (mapcar
- (function
- (lambda ( prop value ) (vlax-put-property regex prop value))
- )
- '(pattern global ignorecase) (list pat actrue acfalse)
- )
- (vlax-for x (vlax-invoke regex 'execute str)
- (setq l (cons (list (vlax-get x 'value) (vlax-get x 'firstindex)) l))
- )
- (reverse l)
- )
- ;;------------------=={ Release Object }==--------------------;;
- ;; ;;
- ;; Releases a VLA Object from memory via plentiful error ;;
- ;; trapping ;;
- ;;------------------------------------------------------------;;
- ;; Author: Lee McDonnell, 2010 ;;
- ;; ;;
- ;; Copyright ? 2010 by Lee McDonnell, All Rights Reserved. ;;
- ;; Contact: Lee Mac @ TheSwamp.org, CADTutor.net ;;
- ;;------------------------------------------------------------;;
- ;; Arguments: ;;
- ;; obj - VLA Object to be released from memory ;;
- ;;------------------------------------------------------------;;
- ;; Returns: T if Object Released, else nil ;;
- ;;------------------------------------------------------------;;
- (defun LM:ReleaseObject ( obj )
- (vl-load-com)
- ;; ? Lee Mac 2010
- (and obj (eq 'VLA-OBJECT (type obj)) (not (vlax-object-released-p obj))
- (not
- (vl-catch-all-error-p
- (vl-catch-all-apply
- (function vlax-release-object) (list obj)
- )
- )
- )
- )
- )
|