冒泡排序问题
编号处理工具,比如有,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:43 编辑
其实也是判断是否连贯的问题,如果不连贯,就把相同编号,统一减去1,使其填补不连贯的号,这样类推下去。直到连贯为止
我也有相同的想法!!!!一起顶!
(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:57 编辑
vl-sort 本帖最后由 zzl9105 于 2012-4-7 13:05 编辑
gu版,如何利用已排序好的list,来entmod每一个选中的文字?这点真没搞明白。
谢谢g版的指导! 本帖最后由 zzl9105 于 2012-4-7 14:38 编辑
哦,这个思路挺好,就可以一一对应了,也好更新每一个对应的图元了。(cons 文字内容,图元名),表对的排序,它能按文字内容排序么?即按表中第一个元素内容来排么?
用于比较的参数类型不正确: ("AZ1" . <图元名: 7efab6d0>) ("AZ3" . <图元名:
7efab6e8>)
经测试,不能排序呀,老大,哪位给予赐教啊,谢谢了!!!
本帖最后由 zzl9105 于 2012-4-7 15:00 编辑
对表对的排序,出了点问题,要用car来取第一项排序么?
还有就是赋值,是这种格式么:(entget 7efab6d0)后跟图元名即可调取该图元么?
望高手赐教下 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: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