这将有助于您的道路:
- (defun c:tst ( / dwgn letters numbers)
- (vl-load-com)
- ; dwgname without path and extension
- (setq dwgn (vl-filename-base (getvar 'dwgname)))
- (princ (strcat "\nDrawing name is : " dwgn))
- (princ (strcat "\nDrawing name has " (itoa (strlen dwgn)) " characters"))
- ; Total number of letters in filename
- (if (> (setq letters (length (vl-remove-if '(lambda(x)(and (< x 58)(> x 47)))(vl-string->list dwgn)))) 0)
- (princ (strcat "\nTotal of letters in drawing name : " (itoa letters)))
- (princ "\nNo letters in dwgname")
- )
- ; total number of numbers in filename
- (if (> (setq numbers (length (vl-remove-if '(lambda(x)(or (< x 48)(> x 57)))(vl-string->list dwgn)))) 0)
- (princ (strcat "\nTotal of numbers in drawing name : " (itoa numbers)))
- (princ "\nNo numbers in dwgname")
- )
- (princ)
- )
- ; a few tiny lisp functions for more general use :
- ; remove letters from string (ripcar "123abc456def") -> "123456"
- (defun ripcar (s)
- (vl-list->string (vl-remove-if '(lambda(x)(or (< x 48)(> x 57)))(vl-string->list s))))
- ; remove numbers from string (ripnum "123abc456def") -> "abcdef"
- (defun ripnum (s)
- (vl-list->string (vl-remove-if '(lambda(x)(and (< x 58)(> x 47)))(vl-string->list s))))
Rlx级 |