 - (setq l '(("A" "01" "1" "2")
- ("A" "01" "3" "4")
- ("A" "01" "5" "6")
- ("B" "01" "1" "2")
- ("B" "01" "3" "4")
- ("B" "01" "5" "6")
- ("C" "01" "1" "2")
- ("C" "01" "3" "4")
- ("C" "01" "5" "6")
- )
- )
- (defun countitem (l / rtn flag a)
- (while l
- (setq a (car l)
- l (cdr l)
- )
- (setq
- flag (vl-some
- '(lambda (X)
- (if (and (= (car a) (car x)) (= (cadr a) (cadr x)))
- (setq rtn (subst (append x (cddr a)) x rtn))
- )
- )
- rtn
- )
- )
- (if (not flag)
- (setq rtn (cons a rtn))
- )
- )
- (setq rtn (reverse rtn))
- (mapcar '(lambda (x / b)
- (list (car x)
- (cadr x)
- (foreach n (cddr x)
- (if b
- (setq b (strcat b " " n))
- (setq b n)
- )
- )
- )
- )
- rtn
- )
- )
|