我有一個包含100列和1095行的文本文件。我需要編寫一個方案代碼,在每個循環中讀取我的txt文件的一行,並將原始數據中的100個數字分配給100個不同的變量,然後重複1095次。SCHEME - 如何編寫一個從文本文件讀取值並將其分配給變量的循環
這些是我在手現在:
A.這是我用於爲變量分配值的代碼,我通過ANSYS-FLUENT(計算流體動力學工具)閱讀。
(define flow-wt-1 0.0)
(define run
(lambda(flow-time)
(if (< flow-time 181)
(set! flow-wt-1 '1.0)
(set! flow-wt-1 '0.0))
(ti-menu-load-string (format #f "def bc outflow 6 ~a" flow-wt-1))
)
)
B.我還發現下面的代碼讀取TXT文件。現在
(defun load_data (arr column filename)
(setf lnt (first (array-dimensions arr)))
(with-open-file (str (format nil "~A.txt" filename) :direction :input)
(loop :for i :from 0 :to (1- lnt) :do
(setf (aref arr i 0) (read-from-string (nth (1- column) (split-sequence:SPLIT-SEQUENCE #\Space (read-line str)))))
)
)
)
,我想要做的是: 我想刪除的「如果」條件(A項),並使用的流量 - 時間的價值,我想循環的計數器代碼來讀取我的txt文件的每一行。 而不是'1.0 in(set!flow-wt-1'1.0)我想引用(例如)第一行的第二列。
我的問題是: 我可以連接這兩段代碼嗎?我怎樣才能從txt文件中調用一個值?
我真的很感激任何建議和意見。
非常感謝!
第一個代碼是寫在計劃,第二個是Common Lisp中。他們是2種不同的語言。 – uselpa
哦! 如何在Scheme中逐行讀取文本文件?它是寫表單來打開文本文件並在線閱讀嗎? ((call-with-input-file「doorstate.txt」 (lambda(flow-wt) (let *((a(read flow-wt)) (b(read flow-wt)) 讀取flow-wt))) ) ) ) – Negar
所以你想製作100,000個變量,那麼什麼? – Sylwester