明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 679|回复: 6

[提问] 请教lsp代码如何写?

[复制链接]
发表于 2018-3-26 16:22:18 | 显示全部楼层 |阅读模式
请教一下各位怎么提取字符串里的数字,并转为数字型变量。
比如字符串为“1A2B3D44E5FFF6AAAA” 提取结果为:123456

lsp没写过,多谢各位。
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2018-3-26 20:55:30 | 显示全部楼层
每一个取出,然后用ASCII码确认
发表于 2018-3-27 08:11:30 | 显示全部楼层
有比较多的方法,可以调用外部对象 正则表达式 获取,最简单的办法就是循环判断 字符串里面的每一个字符,用assic码判断 就行了,或者预设想要的字符表 例如 '( "1" "2" "3" "4" "5" "6" "7" "8" "9" "0" "."),用vl-position判断字符是否在这个表内 即可
 楼主| 发表于 2018-3-27 10:34:23 | 显示全部楼层
谢谢楼上2位,笨方法循环实现了

(setq str (getstring "\n输入:"))
;(print str)
(setq i 0
    s ""
       l (strlen str)
)
(repeat l
  (setq a (substr str (setq i (1+ i)) 1)
   
  )
   (setq ai(ascii a))   
  (if (and (<= ai 57) (>= ai 48))
    (setq s (STRCAT s a))
  )  
)
(setq X (Atof s))
发表于 2018-3-27 16:27:31 | 显示全部楼层
  1. (setq a "1A2B3D44E5FFF6AAAA")
  2. (vl-list->string (vl-remove-if '(lambda(x)(or (< x 48)(> x 57))) (vl-string->list a)))
发表于 2018-3-27 17:29:15 | 显示全部楼层
如果里边有一些全角字符的话这样会出问题的
发表于 2018-3-27 17:31:44 | 显示全部楼层
  1. (defun StrType(a / b c d e);;字符串分离全角、符号、字母、数字,存在问题:连续小数点与数字相连不能精确分离数字和小数点
  2.   (setq b(vl-string->list a))
  3.   (while b
  4.     (setq a(car b)b(cdr b)c(last d))
  5.     (if(or(not d)
  6.           (and(< 0 a 32)(< 0 c 32));;非打印字符
  7.           (or(= 46 a)(= 46 c)(and(< 47 a 58)(< 47 c 58)));数字和小数点
  8.           (vl-every'(lambda(x)(vl-some'(lambda(y)(<(car y)x(cadr y)))'((31 48)(57 65)(90 98)(122 129))))(list a c));其它字符包括小数点
  9.           (vl-every'(lambda(x)(vl-some'(lambda(y)(<(car y)x(cadr y)))'((64 91)(96 123))))(list a c));;字母
  10.           (and(> a 128)(> c 128)));;全角字符
  11.       (if(> a 128)(setq d(vl-list*(car b)a d)b(cdr b))(setq d(cons a d)))
  12.       (setq e(cons(reverse d)e)d(if(> a 128)(list(car b)a)(List a))b(if(> a 128)(cdr b)b))))
  13.   (mapcar'vl-list->string(reverse(cons(reverse d)e))))

(read(apply'strcat(vl-remove-if-not'distof(STRTYPE"1A2B3D44E5FFF6AAAA"))))
1234456
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-19 19:14 , Processed in 0.247246 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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