明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2235|回复: 4

[提问] 寻找一个含前后缀的数字文本加减替换的lsp程序

[复制链接]
发表于 2013-10-27 17:09:48 | 显示全部楼层 |阅读模式
我想把“33”、“34a”、“a35”……这些单行文字加(或减)一个常数比如10,替换为“43”、“44a”、“a45”……
恳请高手出手相助!
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2013-10-28 13:38:13 | 显示全部楼层
本帖最后由 自贡黄明儒 于 2013-10-28 16:49 编辑

;;如是前后有整数,那就好办了

  1. (defun NumberChange (str num / STR1 STR2)
  2.   (cond        ((setq str1 (car (xd::string:regexps "\\d+$$" str "")))
  3.          (setq str2 (itoa (+ (atoi str1) num)))
  4.          (XD::String:Replace "\\d+$$" str str2 "")
  5.         )
  6.         ((setq str1 (car (xd::string:regexps "^\\d+" str "")))
  7.          (setq str2 (itoa (+ (atoi str1) num)))
  8.          (XD::String:Replace "^\\d+" str str2 "")
  9.         )
  10.   )
  11. )

  12. (defun C:w1 (/ EN ENTLIS N SS STR)
  13.   (if (setq ss (ssget '((1 . "*#*"))))
  14.     (repeat (setq n (sslength ss))
  15.       (setq en (ssname ss (setq n (1- n))))
  16.       (setq entlis (entget en))
  17.       (setq str (cdr (assoc 1 entlis)))
  18.       (if (setq str (NumberChange str 10))
  19.         (entmod (subst (cons 1 str) (assoc 1 entlis) entlis))
  20.       )
  21.     )
  22.   )
  23. )

本帖子中包含更多资源

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

x
回复 支持 1 反对 0

使用道具 举报

发表于 2013-10-27 19:47:14 | 显示全部楼层

本帖子中包含更多资源

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

x
 楼主| 发表于 2013-10-28 18:17:30 | 显示全部楼层
自贡黄明儒 发表于 2013-10-28 13:38
;;如是前后有整数,那就好办了

谢谢黄明儒的提供的源码,但是选择要替换的文本确认时出现如下错误:
; 错误: no function definition: XD::STRING:REGEXPS

点评

http://bbs.mjtd.com/thread-108027-1-1.html  发表于 2013-10-28 19:40
发表于 2013-11-4 12:37:30 | 显示全部楼层
同样选择要替换的文本确认时出现如下错误:
; 错误: no function definition: XD::STRING:REGEXPS
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-5-11 03:09 , Processed in 0.208557 second(s), 36 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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