明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1278|回复: 7

[讨论] 如何将表进行排序

[复制链接]
发表于 2015-10-28 20:26:13 | 显示全部楼层 |阅读模式
( (("建设单位" "镇江金顺有限公司" <图元名: -16add0>)  ("图号" "NO.02" <图元名: -16ade8>) )  
    (("建设单位" "镇江金顺有限公司" <图元名: -16add0>)  ("图号" "NO.04" <图元名: -16ade8>) )
    (("建设单位" "镇江金顺有限公司" <图元名: -16add0>)  ("图号" "NO.01" <图元名: -16ade8>) )
    (("建设单位" "镇江金顺有限公司" <图元名: -16add0>)  ("图号" "NO.02" <图元名: -16ade8>) )
    (("建设单位" "镇江金顺有限公司" <图元名: -16add0>)  ("图号" "NO.03" <图元名: -16ade8>) )  )

   如何将图中的四个表按照“图号”的正常顺序01、02、03、04排序成如下:

( (("建设单位" "镇江金顺有限公司" <图元名: -16add0>)  ("图号" "NO.01" <图元名: -16ade8>) )  
    (("建设单位" "镇江金顺有限公司" <图元名: -16add0>)  ("图号" "NO.02" <图元名: -16ade8>) )
    (("建设单位" "镇江金顺有限公司" <图元名: -16add0>)  ("图号" "NO.02" <图元名: -16ade8>) )
    (("建设单位" "镇江金顺有限公司" <图元名: -16add0>)  ("图号" "NO.03" <图元名: -16ade8>) )
    (("建设单位" "镇江金顺有限公司" <图元名: -16add0>)  ("图号" "NO.04" <图元名: -16ade8>) )  )




发表于 2015-10-28 21:36:18 | 显示全部楼层
  1. (setq thlb '((("建设单位" "镇江金顺有限公司" <图元名: -16add0>)  ("图号" "NO.02" <图元名: -16ade8>) )  
  2.               (("建设单位" "镇江金顺有限公司" <图元名: -16add0>)  ("图号" "NO.04" <图元名: -16ade8>) )
  3.               (("建设单位" "镇江金顺有限公司" <图元名: -16add0>)  ("图号" "NO.01" <图元名: -16ade8>) )
  4.               (("建设单位" "镇江金顺有限公司" <图元名: -16add0>)  ("图号" "NO.02" <图元名: -16ade8>) )
  5.               (("建设单位" "镇江金顺有限公司" <图元名: -16add0>)  ("图号" "NO.03" <图元名: -16ade8>) )
  6.              )
  7. )

  8. (setq thlb (vl-sort thlb '(lambda(x y)
  9.                               (< (atof (vl-string-subst "" "NO." (cadr (cadr x))))
  10.                                  (atof (vl-string-subst "" "NO." (cadr (cadr y))))
  11.                               )
  12.                            )
  13.             )
  14. )
发表于 2015-10-28 21:50:28 | 显示全部楼层
  1.     (setq a'((("建设单位" "镇江金顺有限公司" <图元名: -16add0>)
  2.         ("图号" "NO.02" <图元名: -16ade8>)
  3.       )
  4.       (("建设单位" "镇江金顺有限公司" <图元名: -16add0>)
  5.         ("图号" "NO.04" <图元名: -16ade8>)
  6.       )
  7.       (("建设单位" "镇江金顺有限公司" <图元名: -16add0>)
  8.         ("图号" "NO.01" <图元名: -16ade8>)
  9.       )
  10.       (("建设单位" "镇江金顺有限公司" <图元名: -16add0>)
  11.         ("图号" "NO.02" <图元名: -16ade8>)
  12.       )
  13.       (("建设单位" "镇江金顺有限公司" <图元名: -16add0>)
  14.         ("图号" "NO.03" <图元名: -16ade8>)
  15.       )
  16.        )
  17.     )
  18. (setq bb (vl-sort a
  19.       '(lambda (a1 a2)
  20.          (<  (atof (substr (cadadr a1) 5))
  21.       (atof (substr (cadadr a2) 5))
  22.          )
  23.        )
  24.    )
  25. );排序
  26. ;排序后的结果
  27. ((("建设单位" "镇江金顺有限公司" <图元名: -16ADD0>) ("图号" "NO.01" <图元名: -16ADE8>))
  28.   (("建设单位" "镇江金顺有限公司" <图元名: -16ADD0>) ("图号" "NO.02" <图元名: -16ADE8>))
  29.   (("建设单位" "镇江金顺有限公司" <图元名: -16ADD0>) ("图号" "NO.02" <图元名: -16ADE8>))
  30.   (("建设单位" "镇江金顺有限公司" <图元名: -16ADD0>) ("图号" "NO.03" <图元名: -16ADE8>))
  31.   (("建设单位" "镇江金顺有限公司" <图元名: -16ADD0>) ("图号" "NO.04" <图元名: -16ADE8>))
  32. )





发表于 2015-10-28 21:55:29 | 显示全部楼层
我也来个:
  1. (defun c:tt()
  2.   (setq  a '(
  3.              (("建设单位" "镇江金顺有限公司" <图元名: -16add0>) ("图号" "NO.02" <图元名: -16ade8>))
  4.              (("建设单位" "镇江金顺有限公司" <图元名: -16add0>) ("图号" "NO.04" <图元名: -16ade8>))
  5.              (("建设单位" "镇江金顺有限公司" <图元名: -16add0>) ("图号" "NO.01" <图元名: -16ade8>))
  6.              (("建设单位" "镇江金顺有限公司" <图元名: -16add0>) ("图号" "NO.02" <图元名: -16ade8>))
  7.              (("建设单位" "镇江金顺有限公司" <图元名: -16add0>) ("图号" "NO.03" <图元名: -16ade8>))
  8.             )
  9.    c nil
  10.   )
  11.   (setq b (vl-sort-i a (function (lambda (x y) (< (cadadr x) (cadadr y))))))
  12.   (foreach i b (setq c (append c (list (nth i a)))))
  13. )


 楼主| 发表于 2015-10-28 22:21:04 | 显示全部楼层
果然高手众多,谢谢
发表于 2015-10-28 22:34:28 | 显示全部楼层
  1. (vl-sort lst '(lambda (x y) (< (cadadr x) (cadadr y))))
复制代码
 楼主| 发表于 2015-10-28 22:41:56 | 显示全部楼层
琴剑江山_10184 发表于 2015-10-28 21:50

请问重复的怎么删除呢?
 楼主| 发表于 2015-10-28 22:43:26 | 显示全部楼层
重复的怎么删除呢,是什么函数呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-23 02:51 , Processed in 0.180846 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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