乐筑天下

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

[编程交流] 在文件上搜索字符串

[复制链接]

11

主题

36

帖子

25

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
55
发表于 2022-7-6 09:35:32 | 显示全部楼层 |阅读模式
我到处都在搜索,但找不到lisp例程,所以我不妨问问。
 
假设我有一个名为“Mech-Poject1”、“Project1 Mech Job#”和“Job#-Mech”的文件。我们没有一个命名文件的标准,所以我很难去掉文件名并在上面寻找“MECH”这个词。
 
使用lisp例程,我如何知道当前图形的文件名上是否有单词“MECH”。如果我在其中一个图形中,我计划修改我的“qsave and save”命令以执行额外的命令/lisp例程。
 
更清楚地说,如果我在使用文件名上的字符串“MECH”绘制机械图形,它将运行一个例程,在超级种子文件夹上创建一个备份文件,上面有日期,然后执行保存命令。如果我打开一个名为“Elec Project”的图形并点击save。因为文件名上没有字符串“mech”,所以它只会保存图形。
 
非常感谢您的帮助。
回复

使用道具 举报

7

主题

143

帖子

136

银币

初来乍到

Rank: 1

铜币
36
发表于 2022-7-6 09:45:37 | 显示全部楼层
您必须调用系统变量DWGNAME
(getvar“DWGNAME”)
结果是一个字符串,然后必须使用字符串“mech”进行过滤
回复

使用道具 举报

11

主题

36

帖子

25

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
55
发表于 2022-7-6 09:57:02 | 显示全部楼层
我知道如何使用dwgname或vl filename base获取文件名。我只是不知道如何检查文件名上是否有字符串“mech”,因为它可以在文件名的第一个、中间或最后一个字符串中。我不知道如何启动我的代码。如果它只是文件名上的前4个字符串或最后4个字符串,我只能搜索整个文件名,但我做不到。
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 10:12:13 | 显示全部楼层
请尝试以下操作,而不是使用substr:
 
  1. (vl-load-com)
  2. (vl-string-search "MECH" (strcase (getvar 'dwgname)))

 
这将找到字符串,无论位置如何(即开始、中间、结束等)。
 
希望这有帮助!
回复

使用道具 举报

11

主题

36

帖子

25

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
55
发表于 2022-7-6 10:17:02 | 显示全部楼层
谢谢LibertyOne和RenderMan。这就是我一直在寻找的。一直在考虑一个复杂的代码,但一个简单的vlisp函数做得很好。我现在可以睡个好觉了。
 
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 10:27:51 | 显示全部楼层
有时我们忽略了一些小事。。。很乐意帮忙。
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 10:40:51 | 显示全部楼层
您也可以使用wcmatch
如。
  1. (wcmatch (strcase (getvar 'dwgname) "*MECH*")
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-7 02:02 , Processed in 0.372853 second(s), 66 queries .

© 2020-2025 乐筑天下

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