找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 706|回复: 4

[已解决] 谁能修改下代码加一个 数字字符串按数字值排序

[复制链接]

已领礼包: 4个

财富等级: 恭喜发财

发表于 2019-4-1 09:14:14 | 显示全部楼层 |阅读模式
悬赏20D豆已解决
(defun c:XDTB_TJTEXT (/ hz i key lst pt ss txt val x xw y)  (defun XD::List:Sort (lst oper / x1 x2)  (vl-sort lst           '(lambda (x1 x2)              (if (and                    (atom x1)                    (atom x2)                  )                (apply oper (list x1 x2))                (if (and (xdrx_string_regexps "[0-9.]+" (car x1))                         (xdrx_string_regexps "[0-9.]+" (car x2))                    )                  (apply oper (list (atof (car x1)) (atof (car x2))))                  (apply oper (list (car x1) (car x2)))                )              )            )  ))  (defun _prompt ()    (xdrx_prompt      "\n当前方式:"      (if (= 0 #xd-tongji-text-mode)        "文字自身统计"        "文字内数字求和"      )    )    (princ)  )  (defun _KEYWORD (key)    (cond      ((= key "D")       (if (= 1 #xd-tongji-text-mode)         (setq #xd-tongji-text-mode 0)         (setq #xd-tongji-text-mode 1)       )      )    )    (_prompt)  )  (xdrx_begin)  (if (not #xd-tongji-textheight)    (setq #xd-tongji-textheight 3.5)  )  (if (not #xd-tongji-text-mode)    (setq #xd-tongji-text-mode 0)  )  (if (setq val        (getreal                  (xdrx_prompt "\n字高<" #xd-tongji-textheight ">:" t)                )      )    (setq #xd-tongji-textheight val)  )  (_prompt)  (xdrx_initget "D")  (if (and (xdrx_initssget             "\n选取要统计的文字[统计方式(D)]<退出>"             "D"             ""             "_KEYWORD"           )           (setq ss (xdrx_ssget '((0 . "*TEXT"))))      )    (progn      (setq lst (xdrx_entity_getproperty ss "textstring"))      (if (= 0 #xd-tongji-text-mode)        (progn          (setq            lst         (xd::list:groupbyindex lst 1.0)            lst         (mapcar '(lambda (x) (list (car x) (length (cdr x))))                         lst                 )            lst         (xd::list:sort lst '<)          )        )        (progn          (xdrx_sysvar_push '("dimzin" 0))          (setq        lst  (mapcar                       '(lambda        (x)                          (setq txt (xdrx_getpropertyvalue x "textstring"))                          (if (and                                (setq hz (xd::string:regexps                                           "[\\u4e00-\\u9fa5]{0,}"                                           txt                                           ""                                         )                                )                                (setq xw (xd::string:regexps                                           "(-?[0-9]+)(\\.[0-9]+)?"                                           txt                                           ""                                         )                                )                              )                            (list (car hz) (atof (car xw)))                          )                        )                       (xdrx_pickset->ents ss)                     )                lst  (xd::list:groupbyindex lst 0.1)                lst  (xd::list:sort                       lst                       '<                     )                lst  (mapcar                       '(lambda        (x)                          (list        (car x)                                (rtos (apply                                        '+                                        (cdr x)                                      )                                      2                                      1                                )                          )                        )                       lst                     )          )        )      )      (setq i        0            lst        (mapcar        '(lambda (x) (cons (itoa (setq i (1+ i))) x))                        lst                )      )      (setq lst        (cons (list "序 号" "名 称" "数 量") lst)            lst        (cons (list "统 计 表" nil nil)                      lst                )      )      (if (setq pt (getpoint "\n表格插入点<退出>:"))        (progn          (xd::text:init 1)          (xd::table:makefromlist            lst            pt            #xd-tongji-textheight            (/ #xd-tongji-textheight 2.0)          )        )      )    )  )  (xdrx_end)  (princ)) 图像 5.jpg

最佳答案

查看完整内容

现成的 http://bbs.xdcad.net/thread-721449-1-1.html
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 19个

财富等级: 恭喜发财

发表于 2019-4-1 09:14:15 | 显示全部楼层

点评

大哥,这个没有顺序的功能,我觉得这个大神把代码传错了  详情 回复 发表于 2019-4-1 10:36
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 4个

财富等级: 恭喜发财

 楼主| 发表于 2019-4-1 10:36:23 | 显示全部楼层
Lisphk 发表于 2019-4-1 09:48
现成的

http://bbs.xdcad.net/thread-721449-1-1.html

大哥,这个没有顺序的功能,我觉得这个大神把代码传错了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2019-4-1 11:01:52 | 显示全部楼层
弘毅 发表于 2019-4-1 10:36
大哥,这个没有顺序的功能,我觉得这个大神把代码传错了

新更新的,是第二版,你用了吗? 加入了数字的排序功能。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 202个

财富等级: 日进斗金

发表于 2019-7-30 17:45:30 | 显示全部楼层
这种排序,有借鉴意义吗?
排序.png
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-4-27 09:56 , Processed in 0.381832 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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