乐筑天下

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

[编程交流] 转义字符串

[复制链接]

15

主题

315

帖子

361

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-5 20:27:30 | 显示全部楼层 |阅读模式
你好
 
我需要转义双引号字符。
 
我读取属性,将值写入文件。这些值需要在文件中转义。
 
----
所以,我需要的应该是这样的,只是这不起作用:
  1. (princ (replace """ "\\"" attribute_value))
  2. ;; [url]http://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/using-vl-string-subst-to-do-a-find-and-replace-in-external-file/td-p/3732910[/url]
  3. (defun replace (newstr oldstr str / localstr)
  4. (setq localstr str)
  5. (while (vl-string-search oldstr localstr)
  6.    (setq localstr (vl-string-subst newstr oldstr localstr))
  7.    (replace newstr oldstr localstr)
  8. )
  9. localstr
  10. )

我不是第一个需要这个的人。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 20:32:46 | 显示全部楼层
也许函数READ就是你想要的?
回复

使用道具 举报

15

主题

315

帖子

361

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-5 20:37:51 | 显示全部楼层
谢谢,但不是这样。
这正是我所需要的。
 
因此,我有一个具有属性(tag=TFT)的块,值是32“(如32英寸)。我读取块并将数据写入文件。
 
这是我在文本文件中找到的内容:
(“TFT”“32”)
 
我需要在我的文本文件中:
(“TFT”“32”)
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 20:43:08 | 显示全部楼层
像这样试试,让我知道。
 
  1. (if (wcmatch (setq st "32"") "*"")
  2. (strcat (substr st 1 (1- (strlen st))) (chr 92) (chr 34))
  3. )
回复

使用道具 举报

4

主题

2143

帖子

2197

银币

限制会员

铜币
-24
发表于 2022-7-5 20:44:25 | 显示全部楼层
请阅读代码发布指南并编辑您的帖子,将代码包含在代码标签中。
回复

使用道具 举报

15

主题

315

帖子

361

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-5 20:47:41 | 显示全部楼层
 
好的,但我只是给了你一个例子。它的格式并不总是这样(不总是在字符串的末尾,也不总是32)。它需要在任何地方替换任何双引号。
这应该只是一个简单的字符串替换。我不明白为什么这么难
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 20:53:58 | 显示全部楼层
我也给了你们一个例子
 
如果你感兴趣,那就容易多了。
 
  1. (defun _add:slash (st)
  2. (if (wcmatch st "*"")
  3.    (strcat (substr st 1 (1- (strlen st))) (chr 92) (chr 34))
  4. )
  5. )

 
函数的使用。
 
  1. (_add:slash "32"")
回复

使用道具 举报

15

主题

315

帖子

361

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-5 20:59:04 | 显示全部楼层
我理解你函数的方式:
-它查找以“”结尾的字符串;
-然后将其替换为除最后一个字符外的字符串。
-然后它向字符串中添加\”。
 
------
 
无论如何,我的文件中仍然没有\号。
 
显然,wcmatch永远不会返回true。
(我在你的函数中放了一个princ(我添加了progn),用于调试;未打印任何内容
也许需要搜索“不同的”
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 21:01:46 | 显示全部楼层
我之前发布的函数运行良好,无论如何,请显示您的代码以检查它们。
回复

使用道具 举报

15

主题

315

帖子

361

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-5 21:07:12 | 显示全部楼层
我明天再谈。我将制作一个脚本的最小版本,带有一个最小版本的dwg附件。
 
也许问题出在代码的前面;一些转换/过滤/的函数。。。差不多吧。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-11 09:27 , Processed in 0.623627 second(s), 72 queries .

© 2020-2025 乐筑天下

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