请问如何拆开字符串
本帖最后由 wgij007 于 2023-11-16 21:15 编辑如何提取 114567 到剪切板 ,第4行的格式一样的,只是数字不一样的
一天了还没好吗。上面这个不是不行,是要下他的函数库支持。你样本里的是中方输入法下的分号,其实还要同时考虑下英文的冒号的情况。自己完善下吧
(vl-load-com)
(defun c:tt( / str str-lst)
(setq str (cdr(assoc 1 (entget (car(entsel"请选择....."))))))
(setq str-lst (vl-string->list str))
(setq str-lst (member (ascii ":") str-lst))
(setq str-lst (vl-remove-if-not '(lambda(x)(or (= x 46) (and (> x 47)(< x 58)))) str-lst))
(setq str (vl-list->string str-lst))
(SET-CLIP-STRING str)
(princ)
)
;;;功能:向系统剪贴板写入文字(这个函数不是我写的,论坛里好多,随便搜了一个) *
(defun SET-CLIP-STRING (STR / HTML RESULT)
(and (= (type STR) 'STR)
(setq HTML (vlax-create-object "htmlfile"))
(setq RESULT (vlax-invoke
(vlax-get (vlax-get HTML 'PARENTWINDOW)
'CLIPBOARDDATA
)
'SETDATA
"Text"
STR
)
)
(vlax-release-object HTML)
)
(princ)
) ;;如果格式一致就好办,一个vl-remove-if-not函数就搞定.
(vl-load-com)
(defun c:tt( / str str-list)
(setq str (cdr(assoc 1 (entget (car(entsel"请选择....."))))))
(setq str-lst (vl-string->list str))
(setq str-lst (vl-remove-if-not '(lambda(x)(or (= x 46) (and (> x 47)(< x 58)))) str-lst))
(setq str (vl-list->string str-lst))
(SET-CLIP-STRING str)
(princ)
)
;;;功能:向系统剪贴板写入文字(这个函数不是我写的,论坛里好多,随便搜了一个) *
(defun SET-CLIP-STRING (STR / HTML RESULT)
(and (= (type STR) 'STR)
(setq HTML (vlax-create-object "htmlfile"))
(setq RESULT (vlax-invoke
(vlax-get (vlax-get HTML 'PARENTWINDOW)
'CLIPBOARDDATA
)
'SETDATA
"Text"
STR
)
)
(vlax-release-object HTML)
)
(princ)
) zhaoxt 发表于 2023-11-16 06:43
;;如果格式一致就好办,一个vl-remove-if-not函数就搞定.
(vl-load-com)
(defun c:tt( / str str-list)
您好,不行呀,我只要第四行的数字,但这个第一行也提取了 截个图让别人猜,人才!!!!单行文字?多行文字?块?属性? 本帖最后由 vitalgg 于 2023-11-17 00:36 编辑
只提取长度(即后跟单位mm的数字,mm与数字间可以有空格,但不可以有全角空格)
(defun c:tt()
(if (setq en-txt (car(pickset:to-list(ssget ":S" '((0 . "*text"))))))
(progn
(setq res(reverse(string:auto-split(text:remove-fmt(text:get-mtext en-txt)))))
(setq res (vl-remove-if '(lambda(x)(= "" (vl-string-trim " " x))) res))
(if (string:numberp (setq res (cadr (member "mm" res))))
(progn
(@:prompt (strcat "已将" res "复制到剪贴板"))
(clipboard:setdata res))
(@:prompt"没有合适的数字")
))))
以上代码所有自定义函数均来自@lisp函数库https://gitee.com/atlisp/atlisp-lib
https://atlisp.cn/static/videos/提取毫米数据到剪贴板.mp4
vitalgg 发表于 2023-11-16 17:07
只提取长度(即后跟单位mm的数字,mm与数字间可以有空格,但不可以有全角空格)
你好,还是不可 xj6019 发表于 2023-11-16 08:28
截个图让别人猜,人才!!!!单行文字?多行文字?块?属性?
抱歉,没细想,已上传了。
wgij007 发表于 2023-11-16 21:16
你好,还是不可
https://atlisp.cn/static/videos/提取有量纲数字.mp4
vitalgg 发表于 2023-11-17 02:23
不知为什么弹出 Error: undefined function - PICKSET:TO-LIST
页:
[1]
2