issammesk 发表于 2022-7-5 22:53:02

删除斜杠前的文本

大家好
我有很多个人资料,和科坦测试一样
7202-14
7199\B1C-1
7193\B1C-3
7190\B1C-4
在斜杠之前,我需要一步删除每个文本

Tharwat 发表于 2022-7-5 23:02:24

这应该只适用于单一文本,试试看,让我知道。
 

(defun c:DltSlash (/ s i e st p)
;;    Tharwat 18.June.2014      ;;
(princ "\n Select Text object to remove strings before slashes...")
(if (setq s (ssget "_:L" '((0 . "TEXT") (1 . "*\\*"))))
   (repeat (setq i (sslength s))
   (setq e (entget (ssname s (setq i (1- i)))))
   (if (setq p (vl-string-search "\\" (setq st (cdr (assoc 1 e)))))
       (entmod (subst (cons 1 (substr st (1+ p))) (assoc 1 e) e))
   )
   )
)
(princ)
)

issammesk 发表于 2022-7-5 23:11:12

非常感谢,先生,我很高兴
祝你和叙利亚人民好运,我在约旦
先生,我有点犹豫
我可以删除斜杠吗?我的意思是7202\O-14,它是O-14
如果没有,我可以用现在找到和更换后,你伟大的LSP从你
 
再次感谢,先生

Tharwat 发表于 2022-7-5 23:14:28

 
不客气,谢谢你的礼貌。
 
 
只需从例程中替换以下内容。

(1+ p)

用这个。
 

(+ 2 p)

 
祝你好运

issammesk 发表于 2022-7-5 23:22:29

谢谢你,先生
ITSSSS工作
谢谢你

Tharwat 发表于 2022-7-5 23:29:16

不客气。
 
享受它。

hanhphuc 发表于 2022-7-5 23:38:53

谢谢Tharwat总是很有帮助的
 
试试这个,如果只是在字符串内斜杠,没有扩展名,例如:
(vl filename base“C:\\My Document\\My Profile\\My Folder\\My File”)
;“我的文件”
 
但是,如果使用扩展名示例:~\\我的文件。txt,
我有一些类似的简单代码,我们可以在最后一个斜杠之后或之前对其进行模式化,只是为了共享:
 
(\/“C:\\My Document\\My Profile\\My Folder\\My File.txt”“\\”t);最后一个斜杠后的结果
;“我的文件.txt”
 
;或
(\/“C:\\My Document\\My Profile\\My Folder\\My File.txt”“\\”无);显示在最后一个斜杠之前
;“我的文件夹”
 

#hp 19/06/2014
(defun \/ (_str \ after / str $ pos tx)
(setq        str ""
$ nil
pos 1
)                                        ; setq
(repeat (strlen _str)
   (setq tx (substr _str pos 1))
   (if
   (/= tx \)
      (setq str (strcat str tx))       
      (setq $        str
   str ""
      )                                ; end setq
   )                                        ; end if
   (setq pos (1+ pos))               
)                                        ; end repeat
(if after str $)                       
)

Lee Mac 发表于 2022-7-5 23:41:31

另一种写hanhphuc的方法:
(defun \/ ( s c a / p )
   (if (setq p (vl-string-position (ascii c) s nil t))
       (if a (substr s (+ 2 p)) (\/ (substr s 1 p) c t))
       s
   )
)
_$ (\/ "C:\\My Document\\My Profile\\My Folder\\My File.txt" "\\" t)
"My File.txt"
_$ (\/ "C:\\My Document\\My Profile\\My Folder\\My File.txt" "\\" nil)
"My Folder"

hanhphuc 发表于 2022-7-5 23:48:51

 
李很好,只有两行就行了!曾经是LM的风格
thanx ya公司

Lee Mac 发表于 2022-7-5 23:53:14

不客气!
页: [1]
查看完整版本: 删除斜杠前的文本