(读取(strcat)(“”1.5X250X600
当我们使用这个功能时(读(strcat“(”“1.5X250X600”“)”)
它会回来的
(1).
但我需要这样
(1.5X250X600)
请帮忙,谢谢李先生。
你的
穆图。 从帮助:
read函数解析任何LISP数据的字符串表示形式,并返回字符串中的第一个表达式,将其转换为相应的数据类型。
为什么不简单地使用(strcat“(”“1.5X250X600”“)”?
或者,如果要在命令提示下不带引号地显示值:
(princ(strcat)(“1.5X250X600”)
实际上,我的任务是作为列表返回。 你好
你不能得到这样的结果:(1.5X250X600),因为1.5X250X600不是有效的符号名。
偶数'(1.5X250X600)应返回(1)
这是因为1.5X250X600包含一个句点(.)。
请参阅开发人员帮助>AutoLISP开发人员指南W>使用AutoLISP语言>AutoLISP基础>AutoLISP数据类型>符号和变量 是的,吉尔是对的。
如果可以接受,可以使用,作为小数分隔符,而不是。然后有这样的东西:
(列表“1,5X250X600”)
这完全取决于你想如何使用这个值——更大的图景。 能这么满意吗?
(read (strcat "(" "\"" "1.5X250X600" "\"" ")")) ;_return ("1.5X250X600")
我认为这在另一篇文章中得到了回答。问题是()lisp将这些视为程序的一部分,而不是文本。简单的解决方法是使用“chr(x)”将x替换为来自内存的键盘字符数a=65在lisp帮助中查找“ascii”函数,您只需要像一行lisp一样,它给出键盘数。
(读取(strcat chr(65)“1.5X250X600”chr(65)))
括号没有区别-您可以读取这些字符以将字符串解释为有效的LISP表达式。
正如吉尔在第4篇文章中所描述的那样 我认为最好使用外部文件。txt并通过openfile“r”finction调用它们
当做
迈克尔
这同样没有什么区别,因为读取行将返回:
"(1.5X250X600)"
当通过“read”计算时,将导致(1),因为1.5X250X600被解释为整数,因为它不是有效的符号名。
页:
[1]