fgq86233246 发表于 2010-11-11 05:47:00

关于表的搜索问题

<p>各位老师:</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 最近想做一个lisp文件,碰到了一点问题,详细说明如下:</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq&nbsp; aa'(a b c d e f )</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq&nbsp; bb'(1 2 3 4 5 6)</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq&nbsp; cc '(1 2 3 4 5 6)</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 其中表 aa是字符串内容的表,要求输入aa表中的代号时,相应得到bb及cc表中的对应项,就像EXCLE电子表中用VLOOKUP一样输入参数作条件判断得到相应的对应项。该如何来做条件搜索及循环函数</p>
<p>&nbsp; 制作该程序的动机 是想把GB288-94轴承的所有参数做到表中,在绘图时不需要查标准。请老师们指点一二。谢谢</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; </p>

xshrimp 发表于 2010-11-11 08:51:00

在cad中建议做成如下格式检索比较方便
(setq aa '((a 1 5) (b 2 7) (c 3 8) (d 4 9)))
;取得a对应值
(assoc 'a aa)->(a 1 5)
(cadr (assoc 'a aa)) ->1
(caddr (assoc 'a aa)) ->5

danxingpen 发表于 2010-11-11 08:53:00

<p><font face="Verdana">(setq a '("a" "b" "c" "d"))<br/>(setq b '(1 2 3 4 5)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; c '(11 22 33 44 55))</font></p>
<p><font face="Verdana"></font>&nbsp;</p>
<p><font face="Verdana">&nbsp;</p>
<p><br/>(setq dd(vl-position "a" a))</font></p>
<p>(nth dd b)</p>
<p>(nth dd c)</p>

fgq86233246 发表于 2010-11-11 13:29:00

本帖最后由 作者 于 2010-11-11 14:13:11 编辑 <br /><br /> 谢谢2楼老师,问题已解决,起始显示程序错误,经检查是<u><font color="#ff0000">getreal(输入实数)</font></u>与<u><font color="#ff00ff">getstring(输入字符串)</font></u>这两个等待输入函数的区别,最终调试成功,比我原先用条件循环判断程式要简单的多,原先的程式复杂。
页: [1]
查看完整版本: 关于表的搜索问题