只需一步,快速开始
"071 1 051 55 052 30 105 10 106 1 106 4"
"071, 5.0, 071 1 051 1 053 1 105 1 106 1 104 1 "
"071, 5.0, 071 1 052 1 062 4 "
本人刚学习LISP,现向大家请教一 问题,我要循环读取字符串,向上面3组,每次读出后我都要提取,如“071”,“1”,“051”。。。。。
但是每次读出的数位数不定,中间倒是固定间隔一个空格,
所以在LISP中怎样实现提取
使用道具 举报
(setq wenzi "123 456")
(setq wenzilen (strlen wenzi)) ;取出字符串的长度 结果:7(setq zhh (vl-string-translate " " "#" wenzi)) ;转换字符,把空格转换为# 结果:"123#456"
(setq weizhi (vl-string-search "#" zhh)) ;找出#的位置 结果:3
(setq qianzhui (substr wenzi 1 weizhi)) ;取出#前的字符 结果:123
(setq shengyu (substr wenzi (+ 2 weizhi))) 取出剩余的字符串 结果:456
用substr命令以此类推,应该能得到所有的字符
……(setq dst "071 1 051 55 052 30 105 10 106 1 106 4") ;用空格分开的数据字串(setq dsl (read(strcat "(" dst ")"))) ;数据变成表(setq d1 (nth 0 dsl)) ;读取第一个数(setq d2 (nth 1 dsl)) ;读取第二个数……
本版积分规则 发表回复 回帖后跳转到最后一页
小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 ) ©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途
GMT+8, 2024-11-6 07:35 , Processed in 0.166231 second(s), 26 queries , Gzip On.
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.