明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2341|回复: 9

[求助]请教:删除表内重复项?

[复制链接]
发表于 2008-9-18 22:12:00 | 显示全部楼层 |阅读模式

请问高手们有没有什么函数或方法把一个表内的相同项都删除,只剩下其中之一?

比如:'((1 . "abc") (2 . "123") (1 . "abc") (3 . "dfe") (1 . "abc"))

要得到:'((1 . "abc") (2 . "123") (3 . "dfe")) (先后排列顺序不限)

请大家赐教,先谢了!

发表于 2008-9-18 22:26:00 | 显示全部楼层
;;;删除表中重复图元.不支持表中表的重复图元.
;;; (gps->lst-delsame '(1 2 1 2 (1 1) (1 2 1 2 1) 1 2 (1 1) (1 2)))
;;;  -->(1 2 (1 1) (1 2 1 2 1) (1 2))
(defun gps->lst-delsame (lst / lstitem lstnew)
   (foreach lstitem lst
     (if (not (member lstitem lstnew))
       (setq lstnew (append lstnew (list lstitem)))
     )
   )
   lstnew
)
 楼主| 发表于 2008-9-21 10:52:00 | 显示全部楼层
本帖最后由 作者 于 2008-9-21 12:05:26 编辑

谢谢xshrimp大侠出手相助!试了一下您的程序,很好用,基本就是要这个效果,多谢!

在明经的感觉很好,提出的问题很快就能得到热心的解答,有满意的答案,每来一次都会有新的收获,学到新的东西。在有些CAD网站就不一样了,人气好像很热闹,可是看热闹的多,解决问题的少。个人认为还是明经的实干家多,有水平的多。支持明经!

发表于 2008-9-22 13:49:00 | 显示全部楼层
不过这里的斑竹就非常小气了,要帖子达到多少才能看
发表于 2008-9-22 16:01:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2012-2-18 17:22:48 | 显示全部楼层
发表于 2012-2-18 17:59:28 | 显示全部楼层
本帖最后由 cabinsummer 于 2012-2-18 18:03 编辑

  1. (defun delsame (l) (if l (cons (car l) (delsame (vl-remove (car l) l)))))

这是顾版的函数,高效实用。不敢独享

点评

和lee mac那个是一样一样的  发表于 2012-3-7 13:44
发表于 2012-2-18 18:03:42 | 显示全部楼层
此函数对一般的字符串类等确定型的可以,对需要设置容差的交点类是不行的。。。

点评

不懂什么叫“容差的焦点类”  发表于 2012-2-18 18:24
发表于 2012-2-18 19:53:31 | 显示全部楼层
最好是选择前先清理一下重复的图元,比处理表重复项更实在
发表于 2012-3-7 13:18:04 | 显示全部楼层
cabinsummer 发表于 2012-2-18 17:59
这是顾版的函数,高效实用。不敢独享

顾版函数实在太强悍了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-9-25 02:50 , Processed in 0.207177 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表