(DEFUN C:DELDUPLIN ( / llist memberlist revmemberlist llistlen lsslen lss cnt delcnt alist blist) (SETQ LSS(SSGET "x" '((0 . "LINE")))) (SETQ LSSLEN (SSLENGTH LSS)) (PRINC "\n") (PRINC LSSLEN) (PRINC " lines found, preparing comparison list...\n") (SETQ CNT 0) (WHILE (< CNT LSSLEN) (SETQ LLIST (APPEND LLIST (LIST (LIST (CDR (ASSOC 10 (ENTGET (SSNAME LSS CNT)))) (CDR (ASSOC 11 (ENTGET (SSNAME LSS CNT)))))) ) ;_ end of APPEND ) ;_ end of SETQ (SETQ CNT (1+ CNT)) (PRINC "\010\010\010\010\010\010\010") (PRINC CNT) (PRINC) ) ;_ end of WHILE (SETQ llistlen (length llist) CNT 0 delcnt 0) (PRINC "\nComparing lines...\n") (princ) (WHILE (and (< CNT LSSLEN) llist (<=(length llist)llistlen)) (IF (AND (SETQ MEMBERLIST (MEMBER (LIST(CDR(ASSOC 10(ENTGET(SSNAME LSS CNT))))(CDR(ASSOC 11(ENTGET(SSNAME LSS CNT)))))LLIST)) (SETQ REVMEMBERLIST (MEMBER (LIST(CDR(ASSOC 10(ENTGET(SSNAME LSS CNT))))(CDR(ASSOC 11(ENTGET(SSNAME LSS CNT)))))(REVERSE LLIST))) (OR (MEMBER (LIST(CDR(ASSOC 10(ENTGET(SSNAME LSS CNT))))(CDR(ASSOC 11(ENTGET(SSNAME LSS CNT)))))(CDR MEMBERLIST)) (MEMBER (LIST(CDR(ASSOC 11(ENTGET(SSNAME LSS CNT))))(CDR(ASSOC 10(ENTGET(SSNAME LSS CNT)))))(CDR MEMBERLIST)) (MEMBER (LIST(CDR(ASSOC 10(ENTGET(SSNAME LSS CNT))))(CDR(ASSOC 11(ENTGET(SSNAME LSS CNT)))))(CDR REVMEMBERLIST)) (MEMBER (LIST(CDR(ASSOC 11(ENTGET(SSNAME LSS CNT))))(CDR(ASSOC 10(ENTGET(SSNAME LSS CNT)))))(CDR REVMEMBERLIST)) ) ) (PROGN (SETQ LLIST (SUBST (LIST NIL) (LIST(CDR(ASSOC 10(ENTGET(SSNAME LSS CNT))))(CDR(ASSOC 11(ENTGET(SSNAME LSS CNT))))) LLIST)) (ENTDEL (SSNAME LSS CNT)) (setq delcnt (1+ delcnt)) ) ) (SETQ CNT (1+ CNT)) (PRINC "\010\010\010\010\010\010\010") (PRINC CNT) (PRINC) ) (princ "\010\010\010\010\010\010\010") (princ delcnt) (princ " duplicate lines deleted. ") ;;; (cond ;;; ((not llist)(princ "\nNo LLIST ")) ;;; ((>(length llist)llistlen)(princ "\nLLIST length exceded. ")(princ "\n(length llist)=")(princ (length llist))(princ "\nllistlen=")(princ llistlen)) ;;; ((>= CNT LSSLEN)(princ "\nCNT >= LSSLEN ")) ;;; ) (princ) ) ;_ end of DEFUN ;|«Visual LISP© Format Options» (120 2 15 2 T "end of " 100 9 2 0 nil nil nil T T) ;*** DO NOT add text below the comment! ***|;