处理未转义的字符串

时间:2012-09-05 15:10:29

标签: autocad dde autolisp

我写了一个替代功能来打开AutoCAD绘图。但是,从Windows资源管理器运行文档时,AutoCAD很难更改文档的打开方式(双击文件关联文件)。我找到的唯一方法是更改​​一个名为“OpenDdeExec”的注册表项。有一个提供的参数(%1),它为我提供了一个未打开的文件路径。

我需要忽略路径中的转义或用双反斜杠替换反斜杠,然后才能将其解析为特殊字符。在C#中,您可以执行string s = @"I\Like random\backslashes";之类的操作,反斜杠将被视为实际的反向字符。在lisp中,我发现的唯一等价是quote,它有一种奇怪的行为(因为它的正常使用并不是我想要的实现)。

如果我写(quote (I\Like random\backslashes))之类的内容,结果将是(I\\Like random\\backslashes),这几乎是我所需要的。但是,我必须摆脱括号。知道如何实现这个目标吗?

注意:执行此(quote I\Like random\backslashes)会因空格而中断。但是,它会在(quote I\Like\backslashes)上运作。这会像我想要的那样输出I\\Like\\backslashes

这是当前的OpenDdeExec,其中包含所述问题:

(OPENFROMSHELL (QUOTE (%1)))

1 个答案:

答案 0 :(得分:0)

遗憾的是,这不适用于AutoCAD有限的LISP。