77077 发表于 2014-11-23 12:31:47

求个表分组处理函数

求个表分组处理函数
如(setq l '(1 2","3 (4 5","6 7 (8 9 "," 10 11","12)) 13 14","15 16))
表中数据按分隔符 "," 分组?

Gu_xl 发表于 2014-11-23 18:34:08

77077 发表于 2014-11-23 17:55 static/image/common/back.gif
受益匪浅,不过可能是我表述不清,我实际想要的是不改变多层表的层数。

你这是在浪费别人的时间,提问要想尽快得到快速准确的回复,必须做到:
1、尽可能详细的描述你提出你的问题,最好配合具体的实例,给出示意图或DWG例图
2、详细描述你想要得到的结果,尽可能给出最终的结果,而且是不要有歧义的结果!

这样能节省回复者的时间,而且你会尽快的到准确的回复,而不是别人给你回复了,却不是你想要的结果!
另外,请认真学习下置顶的帖子【提示公告】本版关于提问的一些注意事项

ivde 发表于 2014-11-23 13:25:26

先princ为string再替换 ,为 )( 替换

wowan3344 发表于 2014-11-23 14:36:09

1、表直接处理,递归法(不是太熟练);(setq l1 '(1 2","3 (4 5","6 7 (8 9 "," 10 11","12)) 13 14","15 16))
;(T11 L1 NIL NIL)
;=>((16 15) (14 13 12) (11 10) (9 8 7 6) (5 4 3) (2 1))
(defun t11 (l1 l2 l3)
    (mapcar
      '(lambda(x)
            (if (= 'list (type x))
                (setq l2 (t11 x l2 l3) l3 (cdr l2) l2 (car l2))
                (if (= "," x)
                  (setq l2 (cons l3 l2) l3 nil)
                  (setq l3 (cons x l3))
                )
            )
      )
         l1
    )
    (cons l3 l2)
)2、间接处理法,通过字符处理为单括号。;(setq l1 '(1 2","3 (4 5","6 7 (8 9 "," 10 11","12)) 13 14","15 16))
;(T12 L1)
;=>((16 15) (14 13 12) (11 10) (9 8 7 6) (5 4 3) (2 1))
(defun t12 (l1 / l2 l3)
    (mapcar
      '(lambda(x)
            (if (= "," (vl-princ-to-string x))
                (setq l2 (cons l3 l2) l3 nil)
                (setq l3 (cons x l3))
            )
      )
      (read
            (strcat "("
                (vl-string-translate "()" ""
                  (vl-princ-to-string l1)
                )
                ")"
            )
      )
    )
    (cons l3 l2)
)结果再处理;结果再处理
;((1 2) (3 4 5) (6 7 8 9) (10 11) (12 13 14) (15 16))
(reverse(mapcar 'reverse (T12 L1)))

77077 发表于 2014-11-23 17:55:32

wowan3344 发表于 2014-11-23 14:36 static/image/common/back.gif
1、表直接处理,递归法(不是太熟练)2、间接处理法,通过字符处理为单括号。结果再处理

受益匪浅,不过可能是我表述不清,我实际想要的是不改变多层表的层数。

q3_2006 发表于 2014-11-25 18:35:03

77077 发表于 2014-11-23 17:55 static/image/common/back.gif
受益匪浅,不过可能是我表述不清,我实际想要的是不改变多层表的层数。

不改变多层表的层数
分出来是个什么样??
给个结果呗...很新鲜的表...
页: [1]
查看完整版本: 求个表分组处理函数