zzl9105 发表于 2012-4-3 10:25:04

冒泡排序问题

编号处理工具,比如有,AZ1一个,AZ3有三个,AZ4有5个,全选,自动处理漏号的,变成,一个AZ1,3个AZ2,5个AZ3,是按其自身排序号,向上冒泡,处理掉漏号,而不是按位重新编号。不知道哪位大侠手上,有没有现成的lisp,想学习下,谢谢!

http://bbs.mjtd.com/xwb/images/bgimg/icon_logo.png 该贴已经同步到 zzl9105的微博

zzl9105 发表于 2012-4-3 11:07:18

本帖最后由 zzl9105 于 2012-4-3 11:43 编辑

其实也是判断是否连贯的问题,如果不连贯,就把相同编号,统一减去1,使其填补不连贯的号,这样类推下去。直到连贯为止

vlisp2012 发表于 2012-4-4 09:17:08

我也有相同的想法!!!!一起顶!

菡萏 发表于 2012-4-4 09:44:14


(setq l (list "AZ1" "AZ3" "AZ4" "AZ3" "AZ4" "AZ4" "AZ4""AZ3""AZ4"))
(defun sort (l / i old)
(setq        l   (vl-sort l '<)
        i   1
        old (car l)
)
(mapcar '(lambda (X)
             (if (/= x old)
             (progn
               (setq i   (1+ i)
                     old x
               )
               (strcat "AZ" (itoa i))
             )
             (strcat "AZ" (itoa i))
             )
           )
          l
)
)
(sort l) 返回: ("AZ1" "AZ2" "AZ2" "AZ2" "AZ3" "AZ3" "AZ3" "AZ3" "AZ3")

xyp1964 发表于 2012-4-4 09:45:12

本帖最后由 xyp1964 于 2012-4-4 09:57 编辑

vl-sort

zzl9105 发表于 2012-4-5 22:25:55

本帖最后由 zzl9105 于 2012-4-7 13:05 编辑

gu版,如何利用已排序好的list,来entmod每一个选中的文字?这点真没搞明白。
谢谢g版的指导!

zzl9105 发表于 2012-4-6 16:24:30

本帖最后由 zzl9105 于 2012-4-7 14:38 编辑

哦,这个思路挺好,就可以一一对应了,也好更新每一个对应的图元了。(cons 文字内容,图元名),表对的排序,它能按文字内容排序么?即按表中第一个元素内容来排么?

用于比较的参数类型不正确: ("AZ1" . <图元名: 7efab6d0>) ("AZ3" . <图元名:
7efab6e8>)

经测试,不能排序呀,老大,哪位给予赐教啊,谢谢了!!!

zzl9105 发表于 2012-4-7 14:56:47

本帖最后由 zzl9105 于 2012-4-7 15:00 编辑

对表对的排序,出了点问题,要用car来取第一项排序么?
还有就是赋值,是这种格式么:(entget 7efab6d0)后跟图元名即可调取该图元么?
望高手赐教下

菡萏 发表于 2012-4-7 20:04:44

zzl9105 发表于 2012-4-7 14:56 static/image/common/back.gif
对表对的排序,出了点问题,要用car来取第一项排序么?
还有就是赋值,是这种格式么:(entget 7efab6d0) ...

先搞懂vl-sort排序函数用法!示例:
(setq l (list (字串1 图元名)(字串2 图元名) ...)
;;表中字串按从小到大排序
(setq l (vl-sort l '(lambda (a b) (< (car a) (car b)))))

zzl9105 发表于 2012-4-7 21:01:36

本帖最后由 zzl9105 于 2012-4-7 21:12 编辑

菡萏 发表于 2012-4-7 20:04 http://bbs.mjtd.com/static/image/common/back.gif
先搞懂vl-sort排序函数用法!示例:
(setq l (list (字串1 图元名)(字串2 图元名) ...)
;;表中字串按 ...

哦,谢谢你,那更新内容呢,是我说的那种格式不,还有就是赋值,是这种格式么:(entget 7efab6d0)后跟图元名即可调取该图元么?
页: [1] 2
查看完整版本: 冒泡排序问题