在文件上搜索字符串
我到处都在搜索,但找不到lisp例程,所以我不妨问问。假设我有一个名为“Mech-Poject1”、“Project1 Mech Job#”和“Job#-Mech”的文件。我们没有一个命名文件的标准,所以我很难去掉文件名并在上面寻找“MECH”这个词。
使用lisp例程,我如何知道当前图形的文件名上是否有单词“MECH”。如果我在其中一个图形中,我计划修改我的“qsave and save”命令以执行额外的命令/lisp例程。
更清楚地说,如果我在使用文件名上的字符串“MECH”绘制机械图形,它将运行一个例程,在超级种子文件夹上创建一个备份文件,上面有日期,然后执行保存命令。如果我打开一个名为“Elec Project”的图形并点击save。因为文件名上没有字符串“mech”,所以它只会保存图形。
非常感谢您的帮助。 您必须调用系统变量DWGNAME
(getvar“DWGNAME”)
结果是一个字符串,然后必须使用字符串“mech”进行过滤 我知道如何使用dwgname或vl filename base获取文件名。我只是不知道如何检查文件名上是否有字符串“mech”,因为它可以在文件名的第一个、中间或最后一个字符串中。我不知道如何启动我的代码。如果它只是文件名上的前4个字符串或最后4个字符串,我只能搜索整个文件名,但我做不到。 请尝试以下操作,而不是使用substr:
(vl-load-com)
(vl-string-search "MECH" (strcase (getvar 'dwgname)))
这将找到字符串,无论位置如何(即开始、中间、结束等)。
希望这有帮助! 谢谢LibertyOne和RenderMan。这就是我一直在寻找的。一直在考虑一个复杂的代码,但一个简单的vlisp函数做得很好。我现在可以睡个好觉了。
有时我们忽略了一些小事。。。很乐意帮忙。 您也可以使用wcmatch
如。
(wcmatch (strcase (getvar 'dwgname) "*MECH*")
页:
[1]