XDSoft 发表于 2018-10-30 11:34:53

文字统计(数量统计和求和统计)


(defun c:XDTB_TJTEXT( / hz i key lst pt ss txt val x xw y)
(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        (vl-sort lst '(lambda (x y) (< (car x) (car y))))
          )
        )
        (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
                                          "(-?+)(\\.+)?"
                                          txt
                                          ""
                                        )
                             )
                             )
                           (list (car hz) (atof (car xw)))
                       )
                     )
                      (xdrx_pickset->ents ss)
                  )
                lst (xd::list:groupbyindex lst 0.1)
                lst (vl-sort lst
                             '(lambda (x y)
                                (< (car x) (car y))
                              )
                  )
                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)
)


tzfcn 发表于 2018-10-30 13:30:12

好东西!对数字求和很方便。

searinon 发表于 2018-10-30 14:08:57

版主一出必是精品。

hejiho 发表于 2018-10-30 18:46:44

有点意思,谢谢分享

coverne 发表于 2018-10-31 09:24:19


版主一出必是精品。

wenyish 发表于 2018-11-4 19:15:51

厉害了!这是多行文本?还是单行文本?还是块属性?

zhangfaren 发表于 2018-11-5 09:05:06

谢谢分享!

四维77 发表于 2018-11-12 13:38:49

看着还不错的样子,不知如何下载和使用

四维77 发表于 2018-11-12 13:40:18

谢谢分享!

四维77 发表于 2018-11-12 13:42:21

如何下载啊

尹嘉岩 发表于 2018-11-12 21:14:47

多谢分享! {:1_13:}

7079977a 发表于 2019-1-30 17:57:53

感谢楼主分享程序

7079977a 发表于 2019-1-31 10:14:01

版主一出必是精品

lijunfa12345 发表于 2019-2-5 16:06:49

{:1_21:}{:1_14:}{:1_11:}{:1_7:}

借读生 发表于 2019-2-20 21:47:08

感谢分享,这个绝了
页: [1] 2 3
查看完整版本: 文字统计(数量统计和求和统计)