乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 88|回复: 19

[编程交流] 删除文本中的空格

[复制链接]

26

主题

149

帖子

127

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
135
发表于 2022-7-6 07:49:22 | 显示全部楼层 |阅读模式
你好
 
希望有人能告诉我如何删除选定文本或多行文字的空间。
 
  1. (setq e (car (entsel "\n Select Text :")))
  2. (setq ent (entget e))
  3. (entmod (subst (cons 1 .......

 
具体内容不详。
 
谢谢大家。
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 07:55:16 | 显示全部楼层
移除空间,还是用其他东西替换?
 
编辑:
我想删除和用空字符串替换是一样的,嗯。
回复

使用道具 举报

26

主题

149

帖子

127

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
135
发表于 2022-7-6 07:56:45 | 显示全部楼层
不需要。只需从所选文本中删除所选单词的空格即可。
 
谢谢
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 08:02:05 | 显示全部楼层
  1. (defun c:FOO  (/ ss)
  2. (vl-load-com)
  3. (vla-startundomark
  4.    (cond (*activeDoc*)
  5.          ((setq *activeDoc*
  6.                  (vla-get-activedocument (vlax-get-acad-object))))))
  7. (if (setq ss (ssget '((0 . "TEXT,MTEXT"))))
  8.    ((lambda (i / e v s)
  9.       (while (setq e (ssname ss (setq i (1+ i))))
  10.         (setq s (vla-get-textstring (setq v (vlax-ename->vla-object e))))
  11.         (while (vl-string-search " " s)
  12.           (setq s (vl-string-subst "" " " s)))
  13.         (vla-put-textstring v s)))
  14.      -1))
  15. (vla-endundomark *activeDoc*)
  16. (princ))
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
438
发表于 2022-7-6 08:03:38 | 显示全部楼层
  1. (defun noSpaces (str)
  2. (if (eq (type str) 'STR)
  3.    (vl-list->string (vl-remove 32 (vl-string->list str)))
  4. )
  5. )
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
438
发表于 2022-7-6 08:07:00 | 显示全部楼层
仅供参考,如果要将实体编辑为vla对象,使用vla get-activeselectionset要比单步执行selectionset并转换为vla对象更快。
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 08:09:00 | 显示全部楼层
 
双重注释。
回复

使用道具 举报

26

主题

149

帖子

127

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
135
发表于 2022-7-6 08:13:35 | 显示全部楼层
非常感谢先生们。
 
Renderman你的日常工作做得很好。
 
Alanjt请看一看
  1. (defun noSpaces (str)
  2. (if (eq (type str) 'STR)
  3.    (vl-list->string (vl-remove 32 (vl-string->list str)))
  4. )
  5. )
  6. (setq e (car (entsel "\n Select Text :")))
  7. (setq ent (entget e))
  8. (setq tt (cdr (assoc 1 ent)))
  9. (noSpaces tt)

 
在Visual Visp控制台中,我看到了更改,但这不会影响所选文本。
 
以前的代码有什么问题。
 
非常感谢
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 08:17:38 | 显示全部楼层
您需要使用Alan函数返回的textstring更新实体。
 
我想挑战自己,避免使用VL:
 
  1. [ Scroll down after you have got something working on your own   ]
  2. (defun c:nospace ( / nospace ss )
  3. (defun nospace ( s )
  4.    (
  5.      (lambda ( o )
  6.        (repeat (strlen s)
  7.          (if (/= 32 (ascii s))
  8.            (setq o (strcat o (substr s 1 1)))
  9.          )
  10.          (setq s (substr s 2))
  11.        )
  12.        o
  13.      )
  14.      ""
  15.    )
  16. )
  17. (if (setq ss (ssget "_:L" '((0 . "TEXT,MTEXT"))))
  18.    (
  19.      (lambda ( i / e )
  20.        (while (setq e (ssname ss (setq i (1+ i))))
  21.          (entupd
  22.            (cdr
  23.              (assoc -1
  24.                (entmod
  25.                  (subst
  26.                    (cons 1
  27.                      (nospace
  28.                        (cdr
  29.                          (assoc 1 (entget e))
  30.                        )
  31.                      )
  32.                    )
  33.                    (assoc 1 (entget e))
  34.                    (entget e)
  35.                  )
  36.                )
  37.              )
  38.            )
  39.          )
  40.        )
  41.      )
  42.      -1
  43.    )
  44. )
  45. (princ)
  46. )
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
438
发表于 2022-7-6 08:20:25 | 显示全部楼层
如果您没有意识到它只会编辑字符串,而不会编辑对象,那么您需要先学习编辑对象的基础知识,然后再继续。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-9 21:30 , Processed in 0.353626 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表