jxphklibin 发表于 2009-1-14 21:46:00

【求助】如何取多层嵌套表中的原子?

本帖最后由 作者 于 2009-1-15 10:19:20 编辑

有如下一种结构的表,怎样才能分层次的取得相应图元名,然后entget该图元名的数据库。
表的层次,可能不止三层。(((<图元名: 7ef671b0> . 2)                                                                                                ;最外层图块图元名及其内部包含的图块数
   (((<图元名: 7ef671a8> . 4)                                                                                             ;第二层的第一个图块图元名及其内部包含的实体数
      (<图元名: 7ef670b0> <图元名: 7ef670a8> <图元名: 7ef670a0> <图元名:7ef67098>) ;实体图元名表
    )
   ((<图元名: 7ef671a0> . 2)                                                                                              ;第二层的第二个图块图元名及其内部包含的图块数
       (((<图元名: 7ef67108> . 3)                                                                                           ;第三层的第一个图块图元名及其内部包含的实体数
   (<图元名: 7ef50ec0> <图元名: 7ef50eb8> <图元名: 7ef50eb0>)                                    ;实体图元名表
)
((<图元名: 7ef67100> . 4)                                                                                                ;第三层的第二个图块图元名及其包含的实体数
    (<图元名: 7ef670b0> <图元名: 7ef670a8> <图元名: 7ef670a0> <图元名: 7ef67098>)   ;实体图元名表
)
       )
   )
   )
)
)必须修正一下,表的正确的结构格式应该是如下这样的,如果要获取表中的原子,已经比较明确了,已想到获取其原子的方法,就是采用递归的形式遍历表及其多重嵌套表。;;表开始
(;;第一个原子开始
((<图元名: 7ef72088> . 3);普通块,由3个实体组成
   (<图元名: 7ef70fa8> <图元名: 7ef70fa0> <图元名: 7ef70f98>)
);;第一个原子结束
;;第二个原子开始
((<图元名: 7ef72168> . 2);嵌套块,该块由两个块组成
    ;;嵌套块中的第一个块开始
    (((<图元名: 7ef72160> . 4);普通块,由四个实体组成
       (<图元名: 7ef72108> <图元名: 7ef72100> <图元名: 7ef720f8> <图元名: 7ef720f0>)
   );;嵌套块中的第一个块结束
      ;;嵌套块中的第二个块开始
      ((<图元名: 7ef72158> . 3);普通块,由两个实体和一个图块组成
(<图元名: 7ef72020> <图元名: 7ef72018>
   ;;嵌套块中的第二个块中的第一个块开始
   ((<图元名: 7ef72010> . 3);普通块,有3三个实体组成
   (<图元名: 7ef70fa8> <图元名: 7ef70fa0> <图元名: 7ef70f98>)
   );;嵌套块中的第二个块中的第一个块结束
)
      );;嵌套块中的第二个块结束
    );;嵌套块中的第一个块结束
);;第二个原子结束
;;第三个原子开始
((<图元名: 7ef70f70> . 5);普通块,由5个实体组成
    (<图元名: 7ef70f68> <图元名: 7ef70f60> <图元名: 7ef70f58> <图元名: 7ef70f50> <图元名: 7ef70f48>)
);;第三个原子结束
);;表结束
1.1、嵌套图块返回如下格式:
(((<图元名: 7ef67130> . 2)
   (((<图元名: 7ef67108> . 3)
      (<图元名: 7ef50ec0> <图元名: 7ef50eb8> <图元名: 7ef50eb0>)
    )
   ((<图元名: 7ef67100> . 4)
       (<图元名: 7ef670b0>   <图元名:      7ef670a8>
   <图元名:      7ef670a0>   <图元名:
   7ef67098>
)
   )
   )
)
)
1.2、一般图块,单层不嵌套的图块,返回如下格式:
(((<图元名: 7ef67120> . 4)
   (<图元名: 7ef670b0> <图元名: 7ef670a8> <图元名: 7ef670a0> <图元名:
      7ef67098>)
)
)

nonsmall 发表于 2009-1-15 08:56:00

<p>就用nth一个一个取吧</p><p>可以用listp循环判断是否是表(表中是否有嵌套)</p>

jxphklibin 发表于 2009-1-22 17:23:00

补充如下:
标的结构如下,内层的数据,需要到外层的数据,递归循环,编个例程。
((<图元名: 7ef66088>
    (<图元名: 7ef64fa8> <图元名: 7ef64fa0> <图元名: 7ef64f98>)
)
(<图元名: 7ef66168>
   ((<图元名: 7ef66160>
         (<图元名: 7ef66108> <图元名: 7ef66100> <图元名: 7ef660f8> <图元名: 7ef660f0>)
      )
       (<图元名: 7ef66158>
   (<图元名: 7ef66020> <图元名: 7ef66018>
      (<图元名: 7ef66010>
         (<图元名: 7ef64fa8> <图元名: 7ef64fa0> <图元名: 7ef64f98>)
      )
   )
       )
   )
)
(<图元名: 7ef64f70>
   (<图元名: 7ef64f68> <图元名: 7ef64f60> <图元名: 7ef64f58> <图元名: 7ef64f50> <图元名: 7ef64f48>)
)
)
页: [1]
查看完整版本: 【求助】如何取多层嵌套表中的原子?