Message 1 of 5
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
I am learning Visual Lisp.
I have written a program that reads a CSV file and converts it to a list.
Do you have any suggestions for improvement?
Material.csv is
SPC,1.6,2.8
SPC.2.3,4.1
SUS,1.5,2.9
SUS,2,4
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;CSV file Read
(defun c:Read_File (/ r_file fd in_data lst)
(setq r_file
"C:/Users/user1/AppData/Roaming/Autodesk/Support/AcadMenu/UnfoldMenu/Material.csv")
(setq fd (open r_file "r"))
(if (/= fd nil) ;正常Open
(progn
(setq in_data (read-line fd)) ;Header Line read
(while (/= in_data nil)
(setq in_data (read-line fd)) ;Read one line
(if (/= in_data nul)
(progn
(setq lst (_CSVtoList in_data))
(princ lst)
(princ "\n")
)
)
)
(close fd)
)
(princ "Bat File name")
)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;CSVtoList
(defun _CSVtoList
(CSV / len pos result)
(setq len (strlen CSV))
(setq pos 0)
(setq result nil)
(while (/= pos nil)
(setq pos (vl-string-search "," CSV))
(if (/= nil pos)
(progn ;pos != nil
(setq result (append result (list (substr CSV 1 pos))))
(setq CSV (substr CSV (+ pos 2) len))
(setq len (strlen CSV))
)
(setq result (append result (list CSV))) ;pos == nil CSV last Item
)
)
result
)
Saitoib
Solved! Go to Solution.