找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 555|回复: 5

[研讨] 标注递增1

[复制链接]

已领礼包: 1883个

财富等级: 堆金积玉

发表于 2020-1-15 12:54:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
_$ (defun addone (str)
  (setq n (strlen str))
  (setq nlst (reverse (vl-remove nil (mapcar '(lambda (x) (if (<= 48 x 57) (- x 48) nil)) (vl-string->list str)))))
  (setq str1 (substr str 1 (- n (length nlst))))
  (setq nlst (cons (+ 1 (car nlst)) (cdr nlst)) vlst nil flag t)
  (while  flag
    (if (< (car nlst) 10)
            (progn
          (setq vlst (append (reverse vlst) nlst))
                  (setq flag nil)
                 )
                (progn
           (setq vlst (cons (rem (car nlst) 10) vlst))
               (setq nlst (cons (+ (cadr nlst) (/ (car nlst) 10)) (cdr (cdr nlst))))         
                 )
     )
   )
(setq str (strcat  str1 (vl-list->string (mapcar '(lambda (x) (+ 48 x)) (reverse vlst)))))
)
ADDONE
_$  (addone "A-001")
"A-002"
_$ (addone "A-009")
"A-010"
_$ (addone "A-019")
"A-020"
_$  (addone "A-099")
"A-100"
_$  (addone "A-101")
"A-102"
_$
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 1883个

财富等级: 堆金积玉

 楼主| 发表于 2020-1-15 13:11:06 | 显示全部楼层
_$ (defun add_num (str num)
  (setq n (strlen str))
  (setq nlst (vl-remove nil (mapcar '(lambda (x) (if (<= 48 x 57) (- x 48) nil)) (vl-string->list str))))
  (setq str1 (substr str 1 (- n (length nlst))))
  (setq numstr (itoa num) k (- (length nlst) (strlen numstr)))
  (repeat k (setq numstr (strcat "0" numstr)))
  (setq addnumlst (mapcar '(lambda (x) (- x 48)) (vl-string->list numstr)))
  (setq nlst (reverse (mapcar '+ nlst addnumlst)) vlst nil flag t)
  (while  flag
    (if (< (car nlst) 10)
            (progn
          (setq vlst (append (reverse vlst) nlst))
                  (setq flag nil)
                 )
                (progn
           (setq vlst (cons (rem (car nlst) 10) vlst))
               (setq nlst (cons (+ (cadr nlst) (/ (car nlst) 10)) (cdr (cdr nlst))))          
                 )
     )
   )
(setq str (strcat  str1 (vl-list->string (mapcar '(lambda (x) (+ 48 x)) (reverse vlst)))))
)
ADD_NUM
_$ (ADD_NUM "A-019" 1)
"A-020"
_$ (ADD_NUM "A-019" 5)
"A-024"
_$ (ADD_NUM "A-019" 25)
"A-044"
_$ (ADD_NUM "A-139" 45)
"A-184"
_$
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 5604个

财富等级: 富甲天下

发表于 2020-1-15 14:31:50 | 显示全部楼层
感谢楼主分享程序!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2020-1-15 15:00:34 | 显示全部楼层
用正则表达式去识别更好

点评

正则表达式太高大上了,小问题小办法解决就可以了。  详情 回复 发表于 2020-1-15 16:38
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1883个

财富等级: 堆金积玉

 楼主| 发表于 2020-1-15 16:38:12 | 显示全部楼层
Lisphk 发表于 2020-1-15 15:00
用正则表达式去识别更好

正则表达式太高大上了,小问题小办法解决就可以了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2020-1-15 22:06:29 | 显示全部楼层
  1. (defun c:tt ()
  2.   (if (setq ss (ssget '((0 . "text"))))
  3.     (progn
  4.       (setq i -1)
  5.       (repeat (sslength ss)
  6.         (setq e          (ssname ss (setq i (1+ i)))
  7.               txt (cdr (assoc 1 (setq ed (entget e))))
  8.         )
  9.         (if (setq num (xd::string:regexps "\\d+$" txt ""))
  10.           (progn
  11.             (setq num1         (car num)
  12.                   num num1
  13.                   prefix (substr txt 1 (- (strlen txt) (strlen num1)))
  14.                   num1         (+ 1 (atoi num1))
  15.                   num1         (itoa num1)
  16.             )
  17.             (if        (< (setq l1 (strlen num1)) (setq l2 (strlen num)))
  18.               (progn
  19.                 (repeat        (- l2 l1)
  20.                   (setq num1 (strcat "0" num1))
  21.                 )
  22.               )
  23.             )
  24.             (setq
  25.               ed (subst (cons 1 (strcat prefix num1)) (assoc 1 ed) ed)
  26.             )
  27.             (entmod ed)
  28.           )
  29.         )
  30.       )
  31.     )
  32.   )
  33.   (princ)
  34. )


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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-22 10:35 , Processed in 0.397721 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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