bloodtempt 发表于 2014-10-30 16:22:57

如何获取路径中字符串

获得图纸路径如下:
F:\\1-进行中的项目\\20-房地产开发有限公司\\1-5#住宅\\
想截取出 “房地产开发有限公司” 代码如何编写?求指教
20-房地产开发有限公司中20不是固定数字

Andyhon 发表于 2014-10-30 20:08:19

vl-string-position 可派上用场

namezg 发表于 2014-10-30 21:06:51

;----------------------------------------------
;法一
(setq str "F:\\1-进行中的项目\\20-房地产开发有限公司\\1-5#住宅\\")
(repeat 2
        (setq i (vl-string-search "-" str 0))
        (setq str (substr str (+ i 2)))
)
(setq i (vl-string-search "\\" str 0))
(setq str (substr str 1 i))
;----------------------------------------------
;法二
(setq str "F:\\1-进行中的项目\\20-房地产开发有限公司\\1-5#住宅\\")
(setq str (vl-string-subst "" "-" str 0))
(setq i (vl-string-search "-" str 0))
(setq str (substr str (+ i 2)))
(setq i (vl-string-search "\\" str 0))
(setq str (substr str 1 i))
;----------------------------------------------

bloodtempt 发表于 2014-10-31 04:12:59

namezg 发表于 2014-10-30 21:06 static/image/common/back.gif
;----------------------------------------------
;法一
(setq str "F:\\1-进行中的项目\\20-房地产开发 ...

非常感谢你的帮助

bloodtempt 发表于 2014-10-31 21:02:34

(defun strsplit      (string delimited / pos lst)
(while (setq pos (vl-string-search delimited string)) ;当pos存在时执行如下循环
    (setq lst         (cons (substr string 1 pos) lst)
          string (substr string (+ pos 1 (strlen delimited)))
    )
)
(reverse (cons string lst))
)

能告诉我这段代码是什么意思么没太读懂

namezg 发表于 2014-11-3 23:49:51

本帖最后由 namezg 于 2014-11-3 23:51 编辑

命令: (strsplit "123;456;789;" ";")
("123" "456" "789" "")

命令: (strsplit "123;456;789;010" ";")
("123" "456" "789" "010")

命令: (strsplit ";123;456;789;010" ";")
("" "123" "456" "789" "010")

命令: (strsplit ";123;456;789;010;" ";")
("" "123" "456" "789" "010" "")

页: [1]
查看完整版本: 如何获取路径中字符串