[求助]表的处理
<p>请教大家,我要怎样才能从这个表</p><p><font face="Verdana"><font face="Verdana">'((DWGNO "MOLD1") </font></font></p>
<p><font face="Verdana"><font face="Verdana"></font></font> </p>
<p><font face="Verdana"><font face="Verdana">(3HRC "HRC 60-62") </font></font></p>
<p><font face="Verdana"><font face="Verdana">(3MAT "SKD11") </font></font></p>
<p><font face="Verdana"><font face="Verdana">(3THICK 40) </font></font></p>
<p><font face="Verdana"><font face="Verdana"></font></font> </p>
<p><font face="Verdana"><font face="Verdana">(2HRC "HRC 56-58") </font></font></p>
<p><font face="Verdana"><font face="Verdana">(2MAT "Cr12") </font></font></p>
<p><font face="Verdana"><font face="Verdana">(2THICK 30) </font></font></p>
<p><font face="Verdana"><font face="Verdana"></font></font> </p>
<p><font face="Verdana"><font face="Verdana">(1HRC "/") </font></font></p>
<p><font face="Verdana"><font face="Verdana">(1MAT "45#") </font></font></p>
<p><font face="Verdana"><font face="Verdana">(1THICK 20) </font></font></p>
<p><font face="Verdana"><font face="Verdana"></font></font> </p>
<p><font face="Verdana"><font face="Verdana">(MBNUMBER 3) </font></font></p>
<p><font face="Verdana"><font face="Verdana"></font></font> </p>
<p><font face="Verdana"><font face="Verdana">(MBLIST "3#2#1#")</font></font></p>
<p><font face="Verdana"><font face="Verdana"></font></font> </p>
<p><font face="Verdana"><font face="Verdana">)</font></font></p>
<p> </p>
<p><font face="Verdana">拆分得到下面的表呢</font></p>
<p><font face="Verdana">(setq mb_list '("1" "2" "3") )</font></p>
<p><font face="Verdana">(setq thick_list '( 20 30 40))</font></p>
<p><font face="Verdana">(setq mat_list '( "45#" "Cr12" "SKD11" ))</font></p>
<p>(setq hrc_list '("/" "HRC 56-58" "HRC 60-62))</p>
<p><font face="Verdana"> </p></font> 本帖最后由 作者 于 2010-11-9 16:30:34 编辑
(setq lst '((DWGNO "MOLD1")
(3HRC "HRC 60-62") (3MAT "SKD11") (3THICK 40) (2HRC "HRC 56-58")(2MAT "Cr12")
(2THICK 30) (1HRC "/") (1MAT "45#")(1THICK 20) (MBNUMBER 3) (MBLIST "3#2#1#")
)
)
(mapcar '(lambda(x)(cadr (assoc x lst))) '(1THICK 2THICK 3THICK))
(mapcar '(lambda(x)(cadr (assoc x lst))) '(1MAT 2MAT 3MAT) )
(mapcar '(lambda(x)(cadr (assoc x lst))) '(1HRC 2HRC 3HRC ) )
(setq txt (cadr (assoc 'MBLIST lst)))
(while (vl-string-search "#" txt )
(setq txt (vl-string-subst "\" \"" "#" txt))
)
(setq txt (read (strcat "(\"" txt "\")")))
下面的自己处理吧.
<p>谢谢,真利害,再次请教,要是这一句(mapcar '(lambda(x)(cadr (assoc x lst))) '(1MAT 2MAT 3MAT) )里面的'(1MAT 2MAT 3MAT) 改成lst的第几项的cadr如'(第8项 第5项 第2项)要怎么写呢,因为我里面的'(1MAT 2MAT 3MAT)是变量</p> <p><font face="Courier New" size="4">自己看看mapcar 的语法.</font></p>
<p><font face="Courier New" size="4">(mapcar '(lambda(x)(cadr (nth x lst))) '(8 5 2))</font></p> <p>好的,谢谢xshrimp</p>
页:
[1]