- (DEFUN PARSE2 (STR DELIM / LST POS)
- (while (and (setq POS (VL-STRING-SEARCH DELIM STR)))
- (setq LST (APPEND LST (LIST (SUBSTR STR 1 POS))))
- (setq STR (SUBSTR STR (+ 2 POS)))
- )
- (if (> (STRLEN STR) 0)
- (PROGN (APPEND LST (LIST STR)))
- (PROGN LST)
- )
- )
- ; 定义一个新函数get-last-three,用于获取列表中的最后三个元素
- (defun get-last-three (lst / len)
- (setq len (length lst)) ; 获取列表的长度
- (if (<= len 3) ; 如果列表长度小于或等于3
- lst ; 直接返回列表
- (progn ; 否则执行以下步骤
- (repeat (- len 3) ; 重复执行,直到列表只剩下三个元素
- (setq lst (cdr lst)) ; 移除列表的第一个元素
- )
- lst ; 返回最后三个元素
- )
- )
- )
- (defun c:TT2 ()
- (setq S "Pt1,1,2,3,4,609036.512,2730628.308,1463.504")
- ; 使用get-last-three函数获取最后三个坐标值
- ;(setq P (get-last-three (PARSE2 S ",")))
-
-
- ; 使用PARSE2函数解析字符串S
- (setq P (PARSE2 S ","))
- (print P)
- ; 使用get-last-three函数获取最后三个坐标值
- (setq P (get-last-three P))
-
- )
|