检查表内是否有重复项(明镜亦非台)
没有更高的手段,只能用笨办法。。。求一个更精简的程序!!!吼吼;;;检查表内是否有重复项
;;;2011年9月20日 00:15:55 By 明镜亦非台
(defun jccfbymjyft(lst / len n y y2 leng nlist);;;第一次搞会这个局部变量的用法,庆祝一下
(setq len (vl-list-length lst));;原表
(setq n 0)
(setq nlist '())
(while (< n len)
(setq y(nth n lst))
(setq y2(vl-remove y lst))
(setq leng(- len (vl-list-length y2)))
(if (/= leng 1)
(progn
(setq nlist (append nlist (list y)))
);progn
);if
(setq n(1+ n))
);while
nlist
);defun
(defun c:ww();测试
(setq lsttt '(1 2 3 3 3 5 6 q q 明镜 不是 明经 也不是 明镜 44 44 8 8 6))
(setq aa(jccfbymjyft lsttt))
)
;;;返回(3 3 3 6 Q Q 明镜 明镜 44 44 8 8 6)
(defun test (lst / lst2)
(foreach x lst
(if (member x (cdr (member x lst)))
(setq lst2 (append lst2 (list x)))
)
)
lst2
)
;;;(test '(1 2 3 3 3 5 6 8 8 6))
caoyin版主的程序,精简得多。呵呵 版主是自问自答啊,学习了 感觉木啥用 非常有用的小程序,进行统计,检查是否有重复编号的时候会用到。 很棒的小程序
页:
[1]