yanshengjiang 发表于 2011-9-20 00:26:43

检查表内是否有重复项(明镜亦非台)

            没有更高的手段,只能用笨办法。。。求一个更精简的程序!!!吼吼
;;;检查表内是否有重复项
;;;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)

yanshengjiang 发表于 2011-9-20 01:00:32

(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版主的程序,精简得多。呵呵

jfxia 发表于 2012-1-6 19:53:03

版主是自问自答啊,学习了

mjz521yy 发表于 2012-1-10 13:14:17

感觉木啥用

wxytiger 发表于 2013-6-21 12:07:44

非常有用的小程序,进行统计,检查是否有重复编号的时候会用到。

dadiban 发表于 2018-10-20 23:58:04

很棒的小程序
页: [1]
查看完整版本: 检查表内是否有重复项(明镜亦非台)