muthu123 发表于 2022-7-6 10:48:52

(读取(strcat)(“”1.5X250X600

当我们使用这个功能时
(读(strcat“(”“1.5X250X600”“)”)
 
它会回来的
(1).
 
但我需要这样
(1.5X250X600)
 
请帮忙,谢谢李先生。
 
你的
穆图。

SanganakSakha 发表于 2022-7-6 11:01:10

从帮助:
 
read函数解析任何LISP数据的字符串表示形式,并返回字符串中的第一个表达式,将其转换为相应的数据类型。
 
 
为什么不简单地使用(strcat“(”“1.5X250X600”“)”?
 
或者,如果要在命令提示下不带引号地显示值:
(princ(strcat)(“1.5X250X600”)

muthu123 发表于 2022-7-6 11:02:52

 
 
实际上,我的任务是作为列表返回。

gile 发表于 2022-7-6 11:11:11

你好
 
你不能得到这样的结果:(1.5X250X600),因为1.5X250X600不是有效的符号名。
偶数'(1.5X250X600)应返回(1)
 
这是因为1.5X250X600包含一个句点(.)。
请参阅开发人员帮助>AutoLISP开发人员指南W>使用AutoLISP语言>AutoLISP基础>AutoLISP数据类型>符号和变量

SanganakSakha 发表于 2022-7-6 11:22:15

是的,吉尔是对的。
 
如果可以接受,可以使用,作为小数分隔符,而不是。然后有这样的东西:
 
(列表“1,5X250X600”)
 
这完全取决于你想如何使用这个值——更大的图景。

VVA 发表于 2022-7-6 11:26:11

能这么满意吗?

(read (strcat "(" "\"" "1.5X250X600" "\"" ")")) ;_return ("1.5X250X600")

BIGAL 发表于 2022-7-6 11:30:23

我认为这在另一篇文章中得到了回答。问题是()lisp将这些视为程序的一部分,而不是文本。简单的解决方法是使用“chr(x)”将x替换为来自内存的键盘字符数a=65在lisp帮助中查找“ascii”函数,您只需要像一行lisp一样,它给出键盘数。
 
(读取(strcat chr(65)“1.5X250X600”chr(65)))

Lee Mac 发表于 2022-7-6 11:38:04

 
括号没有区别-您可以读取这些字符以将字符串解释为有效的LISP表达式。
 
正如吉尔在第4篇文章中所描述的那样

Michaels 发表于 2022-7-6 11:44:40

我认为最好使用外部文件。txt并通过openfile“r”finction调用它们
 
当做
 
迈克尔

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

 
这同样没有什么区别,因为读取行将返回:
 
"(1.5X250X600)"
 
当通过“read”计算时,将导致(1),因为1.5X250X600被解释为整数,因为它不是有效的符号名。
页: [1]
查看完整版本: (读取(strcat)(“”1.5X250X600