[lisp] 取得每行首串列(應為點資料)並一一畫點 …
這是上一次回答版友以數據輸出"點"問題時
修改既有程式後的副產品
希望可以給部分版友對IO的參考
本程式是讀取.txt檔中
每行的第一個串列資料
當做點資料蒐集起來
之後以點的方式輸出(當然依需要可以連線等等)
另外仍可使用';'作為txt檔中註解符號
例如這樣
;這是平面點資料
;x座標 y座摽
(1.02 3.22)
(5.12 1.67)
(3.66 12.56)
下面lisp出現的函數如有不熟
請先以F1查詢
程式很短也有排版我想並不難看懂
請將以下文字copy到純文字檔案並另存成putpt.lsp
;putpt.lsp
;==========================
;putpt
;取得每行首串列(應為點資料)並一一畫點於圖面上
(defun putpt (fn / fp dat d char ptlist)
(setq fp (open fn "r"))
(while (and
(setq dat (read-line fp))
(setq char (substr dat 1 1))
(if (= char ";")
t
(progn
(setq dat (read dat)
ptlist (cons dat ptlist)
)
)
);end-if
);end-while-test
);end-while
(close fp)
;畫點
;(setq ptlist (reverse ptlist));反轉串列
(foreach dat ptlist (command "point" dat))
)
;=======================
(princ "本程式可將點數據分別以點圖元形式一個個呈現於圖面上")
(princ "\n請確認檔案每行皆為2d,3d點資料形式的串列")
(princ "\n僅會讀取每行第一個數據,故每個點資料請各列一行\n")
(princ "請於指令航鍵入如右指示之函數 (putpt \"dataname.datatype\")")
(princ)
;======How To Use========
;使用方法皆為鍵入(函數名稱 "檔案名稱.副檔名")
;如(putpt "data.txt")
;則可將各數據分別以點的形式呈現於圖面上
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.168.192.118
※ 編輯: Egriawei 來自: 118.168.192.159 (08/19 23:47)
Cad_Cae 近期熱門文章
PTT數位生活區 即時熱門文章