![]() |
|
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.
|