依条件取得字符串问题
本帖最后由 尘缘一生 于 2019-6-29 09:02 编辑有如下格式字符串
"C:\\Program Files\\Autodesk\\AutoCAD 2020\\support;C:\\Program Files\\Autodesk\\AutoCAD 2020\\support\\zh-CN;C:\\Program Files\\Autodesk\\AutoCAD 2020\\Express;C:\\Program Files\\Autodesk\\AutoCAD 2020\\support\\color;D:\\LX\\三领外挂;"
如何编写个LISP,判断里面有“三领外挂”4个字的话,就取得:它所在部分的字符(蓝色部分,前后两分号之间)?
实质就是:有了搜索路径了,如何依据条件,提取这一个特定路径出来。
本帖最后由 highflybird 于 2019-6-29 14:55 编辑
highflybird 发表于 2019-6-29 14:28
用这个获取到支持路径到列表,然后就好办了,用wcmatch 就可以得到你想要的。
(defun c:test (/ str lst)(setq str (getvar "ACADPREFIX")) ;TRUSTEDPATHS ¶
(setq lst (GetSupportPath str))
(foreach n lst
(if (wcmatch n "*三领外挂*")
(princ (strcat "\n" n))
)
)
(princ)
)
(defun GetSupportPath (str / i j lst)
(setq i 0)
(while (setq i (vl-string-position 58 str i))
(setq j (vl-string-position 58 str (1+ i)))
(if j
(setq lst (cons (substr str i (- j i)) lst))
(setq lst (cons (substr str i) lst))
)
(setq i (1+ i))
)
(reverse lst)
)
用这个获取到支持路径到列表,然后就好办了,用wcmatch 就可以得到你想要的。 就是想要这个功能,厉害厉害,好好研究下 本帖最后由 被承包的东子 于 2019-9-6 17:44 编辑
highflybird 发表于 2019-6-29 14:28
用这个获取到支持路径到列表,然后就好办了,用wcmatch 就可以得到你想要的。是我想错了 不好意思
页:
[1]