Lisp »Tips 'n Tricks »Un Debugging minimo Il Debugging è il processo grazie al quale portiamo il programma a svolgere le funzioni per cui è stato scritto correggendo gli eventuali errori presenti. Questo lisp scova le virgolette dispari all'interno di una linea di codice, conta le parentesi aperte e chiuse e salva il tutto in un file ASCII. E' ovviamente un debugging ai minimi termini. ;| DEBUG.LSP (C) by Claudio Piccini (6/08/2003) |; (defun funz1 ( rigo1 / lung nVir K car) (setq lung (strlen rigo1)) (setq nVir 0) (setq K 1) (repeat lung (setq car (substr rigo1 K 1)) (cond ((= car "(")(setq nParA (+ nParA 1))) ((= car ")")(setq nParC (+ nParC 1))) ((= car "\"")(setq nVir (+ nVir 1))) ) (setq K (+ K 1)) ) (setq nVir (rem nVir 2.0)) (if (/= nVir 0) (progn (princ nRigo f2) (princ " ? \"" f2) (princ " " f2) (princ rigo f2) (princ "\n" f2) ) ) ) (defun c:debug (/ f1 f2 nf nf2 rigo nRigo nParA nParC ) (setq nRigo 1) (setq nParA 0) (setq nParC 0) (setq nf (getfiled "Debugging" "" "lsp" 0)) (if (/= nf nil) (progn (setq f1 (open nf "r")) (setq nomeDir (getvar "dwgprefix")) (setq nf2 (strcat nomeDir "debug.txt")) (setq f2 (open nf2 "w")) (setq rigo " ") (while (/= rigo nil) (setq rigo (read-line f1)) (if (/= rigo nil) (progn (funz1 rigo) (setq nRigo (+ nRigo 1)) ) ) ) (close f1) (princ "\nParentesi (: " f2) (princ nParA f2) (princ "\nParentesi ): " f2) (princ nParC f2) (close f2) ) (princ "\nFile non trovato") ) (princ) ) ; eof Come test ho tolto una parentesi e tre virgolette dal sorgente PSET.LSP (Libreria PicK 3.0) quindi ho usato DEBUG.LSP.
|