本帖最后由 fl202 于 2014-5-22 17:50 编辑
这个太强大了!
会用本论坛的搜索果然不一样。
这个小函数用处很大,用于list_box 中多选(ctrl or shift)删除的表中的几个项:
本来还想用下面的程序解决问题呢,楼主这个NB!!!: - ;;85.1 [功能] 字符串分割
- ;;http://www.mjtd.com/function/info-129-216.html,有修改 黄明儒 2013年8月9日
- ;;(setq str "100,,23456.876,345.456," delim ",")
- (defun parse1 (str delim / LST POS)
- (while (setq pos (vl-string-search delim str))
- (setq lst (cons (substr str 1 pos) lst)
- str (substr str (+ pos 2))
- )
- )
- (if (> (strlen str) 0)
- (setq lst (cons str lst))
- )
- (reverse lst)
- )
附另一半程序: - ;============{ 在指定位置删除或插入元素 }===============
- ;nil表示要删除。如果有值为要插入的元素---by wowan1314
- ;(t11 '(1 2 3 4 5 6) 2 0);;->(1 2 0 3 4 5 6)
- ;(t11 '(1 2 3 4 5 6) 2 nil);;->(1 2 4 5 6)
- ;2013年7月20日 星期六
- (defun t11 (lst pos mod / qlst a hlst)
- (setq a -1)
- (setq hlst (vl-member-if-not
- '(lambda(x)
- (setq a (1+ a))
- (if (= a pos) nil
- (setq qlst (cons x qlst))
- )
- )
- lst
- )
- )
- (if mod
- (apply 'append (list (reverse(cons mod qlst)) hlst))
- (apply 'append (list (reverse qlst) (cdr hlst))
- )
- )
- )
改进:
用于list_box 中多选(ctrl or shift)删除的表中的几个项
:list_box{label = "all:";key="d11";edit_width=10;alignment = right;multiple_select=true;} - (defun tt2_sub1(vvs)
- (print vvs)
- (setq i 0 tb2 '() ab (read (strcat "(" vvs ")" )))
- (repeat (length tb1)
- (if (member i ab)
- (princ)
- (setq tb2 (cons (nth i tb1) tb2))
- )
- (setq i (1+ i))
- )
- (setq tb2 (reverse tb2))
- (show_list "d12" tb2)
- )
|