dinosaurhxe 发表于 2007-11-11 22:26:00

请教一个判断字符串是不是表的问题

;问题,这里获得的PIT都是字符串,比如"(1234 56)"<br/>;如果是"1234"还好办,直接转换成数值就可以<br/>;如果是(1234 56)也好办,(setq xx (car pit))<br/>;现在就是判断得到的pit到底是什么把我卡住了。<br/>;请高人指点,谢谢!

dinosaurhxe 发表于 2007-11-11 23:09:00

<p>另外,我想把这句加进去:<br/>(setq pit (getint "\n请输入数值或选取实体读取数值:"))<br/>也就是说我最终想实现的功能是:如果输入一个数字,则返回该数值;如果选取块,则读取该块的PIT值,如果该值为一个坐标,则取X值。<br/>我知道<br/>(initget 1 "XZ&nbsp; ")<br/>(setq pit (getint "\n请输入数值 [或选择实体(XZ)]&lt;XZ&gt;:"))<br/>(cond ((or (= pit "XZ") (null pit)) (c:hqpit)))<br/>是可以实现加进去的,但觉得这样最后在执行程序时需要多操作一次(输入XZ回车或者直接回车),能不直接让程序提示输入数值,同时鼠标又变成可点选状态呢?</p><p></p>

phoenixdjq 发表于 2007-11-12 08:55:00

<p>可以用type函数</p><p>由于匆忙,2楼的没看</p>

ZZXXQQ 发表于 2007-11-12 09:18:00



(if (listp (read pit)) (progn
;表
) (progn
;非表
))

dinosaurhxe2 发表于 2007-11-12 12:28:00

<p>感谢版主,这个问题明白了。</p><p>2楼的问题能帮帮忙吗?</p>

dinosaurhxe2 发表于 2007-11-12 12:30:00

也感谢3楼的兄弟,我回去看看type函数。

dinosaurhxe2 发表于 2007-11-12 12:43:00

<p>还有个问题,现在PIT是一个字符串,它不是表也不是数值,我运行下面的语句时就报错了。很明显这里if判断之后执行的都是(setq&nbsp;xx (rtos pit))。怎么能把"(565.00 42.81)"外面的"去掉让它变成一个表呢?</p><p>&nbsp; (if (listp (read pit))<br/>&nbsp;&nbsp;&nbsp; (setq&nbsp;xx (car pit))<br/>&nbsp;&nbsp;&nbsp; (setq&nbsp;xx (rtos pit))<br/>&nbsp; )</p><p>; 错误: 参数类型错误: consp "(565.00 42.81)"<br/>很明显这里if判断之后执行的都是(setq&nbsp;xx (rtos pit))</p>

dinosaurhxe2 发表于 2007-11-12 13:16:00

<p>7楼的问题自己已经弄明白了,read就已经OK了。</p><p>现在剩下2楼的问题,请前辈们指点,谢谢!</p>

dinosaurhxe2 发表于 2007-11-13 12:30:00

有高人能解决一下2楼的问题么?

dinosaurhxe 发表于 2007-11-14 22:20:00

有人能帮我解决一下2楼的问题吗?
页: [1]
查看完整版本: 请教一个判断字符串是不是表的问题