This function will search an external text
file for a list of values and import the values. It will then assign each value
in the list to a variable.
First copy and paste this into Notepad :
*LIST1
1.0,2.0,3.0
*LIST2
4.0,5.0,6.0
*LIST3
7.0,8.0,9.0
*LIST4
10.0,11.0,12.0
Save this as "AFILE.TXT"
This is your point data.
Now copy and paste this into Notepad and save it as "Grab.lsp"
;CODING STARTS HERE
(defun grab (SIZA)
(setq dlist nil
size (strcat "*" SIZA)
file (findfile "AFILE.TXT")
fp (open file "r")
item (read-line fp)
)
(while item
(if (= item size)
(setq data (read-line fp)
item nil
)
(setq item (read-line fp))
)
)
(if data
(progn
(setq maxs (strlen data)
count 1
chrct 1
)
(while (< count maxs)
(if (/= "," (substr data count 1))
(setq chrct (1+ chrct))
(setq numb (atof (substr data (1+ (- count chrct)) chrct))
dlist (append dlist (list numb))
chrct 1
)
)
(setq count (1+ count))
)
(setq numb (atof (substr data (1+ (- count chrct))))
dlist (append dlist (list numb))
)
)
)
(close fp)
(mapcar 'set '(val1 val2 val3) dlist)
)
;CODING ENDS HERE
----------------------------------------
Usage :
(grab LIST1) will return (1.0 2.0. 3.0)
VAL1 will contain 1.0
VAL2 will contain 2.0
VAL3 will contain 3.0
(grab LIST4) will return (10.0 11.0. 12.0)
VAL1 will contain 10.0
VAL2 will contain 11.0
VAL3 will contain 12.0
|