MarcoW 发表于 2022-7-6 10:24:58

需要修改:(setq Ful)

你好,
 
在我的一段代码中有这样一行:

(setq FullFile (cons (strcat Path "\\" File) FullFile))

 
最后它返回:

"c:\program file\marcow\\test.lsp"

 
这显然是不好的,因为
"\"之前
"test.lsp"应该是一个。
 
现在,如果我删除这部分“\\”它不起作用,如下所示:
 

(setq FullFile (cons (strcat Path File) FullFile))

 
因为我正在学习,我只想知道我是否需要搜索其他地方来修改我的代码。。。
 
我发现当我修改这个时:
>options>tab files>support file search paths>marcow\
>options>tab files>support file search paths>marcow
 
我根本不需要修改代码,但由于我所有的支持文件搜索路径都以一个“\”结尾,我想我需要保持这种方式。。。。
 
这让我感到困扰,但我不知道,请给我一个提示

Lt Dan's l 发表于 2022-7-6 10:39:29

试试这样的

(setq test (strcat (getvar 'roamablerootprefix) "Support\\" "test.lsp"))

 
另一个测试。。。
 

(getfiled "Test" "" "lsp"

 
注意两个都是用双反斜杠返回的

MarcoW 发表于 2022-7-6 10:46:22

丹的腿:谢谢你的回复。
 
不幸的是,我不明白你的意思。
我注意到他们用了两个反斜杠。
 
这是我的问题:
“C:\program files\marcow\user\\marcow\u linetypes.lin”:文件名无效。
 
应该全部是双反斜杠吗?

Lt Dan's l 发表于 2022-7-6 10:54:33

是的,他们应该这样做。原谅我,我不太清楚。我正在做的事情
 
这对你有用吗?
 

(setq fullfile (findfile file))

 
假设此文件位于支持路径中

alanjt 发表于 2022-7-6 11:07:05

“path”变量来自哪里?

Lee Mac 发表于 2022-7-6 11:12:53

(strcat (vl-string-translate "\\" "\\\\" Path) "\\" file)?

BlackBox 发表于 2022-7-6 11:22:08

 
对AutoCAD需要LISP中的双反斜杠。。。
 
例如:
 

"C:\\program files\\marcow\\user\\marcow_linetypes.lin"
 
 
*除非*您使用单正斜杠。
 
例如:
 

Command: (findfile "C:/program files/marcow/user/marcow_linetypes.lin")
"C:\\program files\\marcow\\user\\marcow_linetypes.lin"

 
 
然而,通常使用双反斜杠。

MarcoW 发表于 2022-7-6 11:29:40

大家好,
 
我一直在寻找为什么它在我的程序的前一个版本中一直有效,而不再有效。
最后,我发现我当前在“选项”>“文件”>“支持文件搜索路径”>“中的支持文件搜索路径都以反斜杠结束。
我以前的程序最后没有反斜杠。
 
我只是删除了所有的反斜杠,似乎没有更多的问题。
问题是第三个反斜杠。
由于缺少反斜杠,我没有遇到更多的问题,所以我认为现在可以了。
 
感谢所有提供的帮助!
页: [1]
查看完整版本: 需要修改:(setq Ful)