明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 673|回复: 13

[提问] 请问如何拆开字符串

[复制链接]
发表于 2023-11-15 21:49 | 显示全部楼层 |阅读模式
2明经币
本帖最后由 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 ...
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2023-11-15 21:49 | 显示全部楼层
一天了还没好吗。上面这个不是不行,是要下他的函数库支持。你样本里的是中方输入法下的分号,其实还要同时考虑下英文的冒号的情况。自己完善下吧
(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)
)
回复

使用道具 举报

发表于 2023-11-16 06:43 | 显示全部楼层
;;如果格式一致就好办,一个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)
)
回复

使用道具 举报

 楼主| 发表于 2023-11-16 08:22 | 显示全部楼层
zhaoxt 发表于 2023-11-16 06:43
;;如果格式一致就好办,一个vl-remove-if-not函数就搞定.
(vl-load-com)
(defun c:tt( / str str-list)

您好,不行呀,我只要第四行的数字,但这个第一行也提取了
回复

使用道具 举报

发表于 2023-11-16 08:28 | 显示全部楼层
截个图让别人猜,人才!!!!单行文字?多行文字?块?属性?  
回复

使用道具 举报

发表于 2023-11-16 17:07 | 显示全部楼层
本帖最后由 vitalgg 于 2023-11-17 00:36 编辑

只提取长度(即后跟单位mm的数字,mm与数字间可以有空格,但不可以有全角空格)

  1. (defun c:tt()
  2.   (if (setq en-txt (car(pickset:to-list(ssget ":S" '((0 . "*text"))))))
  3.       (progn
  4.         (setq res(reverse(string:auto-split(text:remove-fmt(text:get-mtext en-txt)))))
  5.         (setq res (vl-remove-if '(lambda(x)(= "" (vl-string-trim " " x))) res))
  6.         (if (string:numberp (setq res (cadr (member "mm" res))))
  7.             (progn
  8.               (@:prompt (strcat "已将" res "复制到剪贴板"))
  9.               (clipboard:setdata res))
  10.             (@:prompt  "没有合适的数字")
  11.             ))))


以上代码所有自定义函数均来自@lisp函数库  https://gitee.com/atlisp/atlisp-lib



回复

使用道具 举报

 楼主| 发表于 2023-11-16 21:16 | 显示全部楼层
vitalgg 发表于 2023-11-16 17:07
只提取长度(即后跟单位mm的数字,mm与数字间可以有空格,但不可以有全角空格)

你好,还是不可
回复

使用道具 举报

 楼主| 发表于 2023-11-16 21:17 | 显示全部楼层
xj6019 发表于 2023-11-16 08:28
截个图让别人猜,人才!!!!单行文字?多行文字?块?属性?

抱歉,没细想,已上传了。
回复

使用道具 举报

发表于 2023-11-17 02:23 | 显示全部楼层


回复

使用道具 举报

 楼主| 发表于 2023-11-17 08:13 | 显示全部楼层

不知为什么弹出 Error: undefined function - PICKSET:TO-LIST
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-2 08:56 , Processed in 0.649639 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表