明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1878|回复: 4

[函数] 有关查找替换中特殊符号@

[复制链接]
发表于 2013-4-26 23:14:17 | 显示全部楼层 |阅读模式
本帖最后由 baiyier1112 于 2013-4-27 00:40 编辑

想要将6@替换成8@,已解决
  1. ;想要将6@替换成8@,x_s_s_1帮忙解决的
  2. (defun c:68( / ss n ent obj txt)
  3.   (if (setq ss (ssget '((0 . "*text")(1 . "*6`@*"))))
  4.     (repeat (setq n (sslength ss))
  5.       (setq ent (ssname ss (setq n (1- n))))
  6.       (setq obj (vlax-ename->vla-object ent))
  7.       (setq txt (vla-get-textstring obj))
  8.       (while (wcmatch txt "*6`@*")
  9.         (setq txt (VL-STRING-SUBST "8@" "6@" txt))      )
  10.       (vla-put-textstring obj txt)
  11.     )
  12.   )
  13.   (princ)
  14. )

点评

@是特殊符号,表示任意字母,不作通配符使用时,前面可以加一个反引号·。  发表于 2013-4-26 23:26
 楼主| 发表于 2013-4-26 23:28:17 | 显示全部楼层
多谢,我去试试看
 楼主| 发表于 2013-4-26 23:38:39 | 显示全部楼层
还是搞不定,能否帮改一下,改成正确的,其他的替换我就可以自己参照着改了
发表于 2013-4-26 23:56:24 | 显示全部楼层
建议采用这个思路:利用(vl-string-position (ascii "@")语句找到@的位置,然后对@前的数字进行判断,若为六则换成8
 楼主| 发表于 2013-4-27 00:03:16 | 显示全部楼层
陨落 发表于 2013-4-26 23:56
建议采用这个思路:利用(vl-string-position (ascii "@")语句找到@的位置,然后对@前的数字进行判断,若为六 ...

我不会lisp编程,只会简单的照葫芦画瓢修改一下。多谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-26 06:33 , Processed in 0.168181 second(s), 33 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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