明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1889|回复: 0

[分享]一个文字搜索替换程序

[复制链接]
发表于 2003-8-14 15:32:00 | 显示全部楼层 |阅读模式
  1. (defun myerr (s)
  2.         (if (/= s "Function cancelled")
  3.                 (princ (strcat "\nError: " s))
  4.         )
  5.         (setq tset nil)        ; Free selection set
  6.         (setq *error* olderr)
  7.         (princ)
  8. )

  9. (defun C:texsrch (/ tset l n e os as ns st s nsl osl sl si chf chm olderr)

  10.         (setq
  11.                 olderr *error*
  12.                 *error* myerr
  13.                 chm 0
  14.         )
  15.         (menucmd "S=SELECT")
  16.         (prompt "\nSelect Text To Modify <All>: ")
  17.         (if (null (setq tset (ssget)))
  18.                 (setq tset (ssget "x" (list (cons 0 "TEXT"))))
  19.         )
  20.         (menucmd "S=")
  21.         (cond
  22.                 ((null tset) (prompt "\nNo Text Located in Drawing."))
  23.                 (t (terpri)
  24.                         (princ (itoa (sslength tset)))
  25.                         (prompt " Text Entities Selected.")
  26.                         (command "undo" "mark")
  27.                 )
  28.         )
  29.         (cond
  30.                 ((null tset) (prompt "\nNothing Modified."))
  31.                 (t
  32.                         (while (= 0 (setq osl (strlen
  33.                                 (setq os (getstring t "\nOld string: ")))))
  34.                                 (princ "Null input invalid")
  35.                         )
  36.                         (setq nsl (strlen (setq ns (getstring t "\nNew string: "))))
  37.                         (setq l 0 n (sslength tset))
  38.                         (while (< l n)       
  39.                                 (if (= "TEXT" (cdr (assoc 0 (setq e (entget (ssname tset l))))))
  40.                                         (progn
  41.                                                 (setq
  42.                                                         chf nil
  43.                                                         si 1
  44.                                                         s (cdr (setq as (assoc 1 e)))
  45.                                                 )
  46.                                                 (while (= osl (setq sl (strlen
  47.                                                         (setq st (substr s si osl)))))
  48.                                                                 (if (= st os)
  49.                                                                 (progn
  50.                                                                         (setq s (strcat (substr s 1 (1- si)) ns
  51.                                                                                 (substr s (+ si osl)
  52.                                                                         )))
  53.                                                                         (setq chf t)
  54.                                                                         (setq si (+ si nsl))
  55.                                                                 )
  56.                                                                 (setq si (1+ si))
  57.                                                         )
  58.                                                 )
  59.                                                 (if chf
  60.                                                         (progn       
  61.                                                                 (setq e (subst (cons 1 s) as e))
  62.                                                                 (entmod e)
  63.                                                                 (setq chm (1+ chm))
  64.                                                         )
  65.                                                 )
  66.                                         )
  67.                                 )
  68.                                 (setq l (1+ l))
  69.                         )
  70.                         (princ "Changed ")       
  71.                         (princ chm)
  72.                         (prompt " text lines.")
  73.                 )
  74.         )
  75.         (setq *error* olderr)
  76.         (princ)
  77. )
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-26 20:29 , Processed in 0.173580 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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