Я написал альтернативную функцию для открытия чертежей AutoCAD. Однако в AutoCAD очень сложно изменить способ открытия документа при его запуске из проводника Windows (двойной щелчок по файлу с файловой ассоциацией). Единственный способ, который я нашел, - это изменить ключ реестра «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)))
(quote |I\Like random\backslashes|)
. Не знаю, будет ли это работать в автолиспе. - person Vsevolod Dyomkin   schedule 05.09.2012(intern "I\Like random\backslashes")
или(make-symbol "I\Like random\backslashes")
. - person Vsevolod Dyomkin   schedule 06.09.2012