Работа с неэкранированными строками

Я написал альтернативную функцию для открытия чертежей 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)))

person Pluc    schedule 05.09.2012    source источник
comment
В Common Lisp такие символы могут быть определены с помощью | символ, например: (quote |I\Like random\backslashes|). Не знаю, будет ли это работать в автолиспе.   -  person Vsevolod Dyomkin    schedule 05.09.2012
comment
Другие вещи, которые можно попробовать, могут быть (intern "I\Like random\backslashes") или (make-symbol "I\Like random\backslashes").   -  person Vsevolod Dyomkin    schedule 06.09.2012
comment
Тоже оба несуществующие. В итоге я написал небольшое приложение для взаимодействия, чтобы запустить AutoCAD и выполнить команду. Однако спасибо за предложение!   -  person Pluc    schedule 06.09.2012


Ответы (1)


К сожалению, это невозможно с ограниченным LISP AutoCAD.

person Pluc    schedule 15.10.2012