推 sunev: eval萬能,不過為什麼要這麼做? 08/22 11:16
感謝sun大提示,之前就有用eval但一直失敗,剛終於試成功,
對於引號放置的位置感覺仍是嘗試錯誤...
eval([table{str_lines,1} '= table{str_lines,2}'])
主要是因為這個說明檔未來仍有可能增減內容,而用這種方式就能將所有資訊讀入。
而對於特定用途的應用,我只需知道哪些項目是我需要的就可以把內容抓出來使用。
※ 編輯: fxxkjoe1231 (49.218.39.53), 08/22/2016 15:04:35
推 sunev: 先看看這是是不你要的字串 08/22 15:42
→ sunev: [table{str_lines,1} '= table{str_lines,2}'] 08/22 15:42
→ sunev: 應該是弄反了 08/22 15:42
→ sunev: [table{str_lines,1} = ''table{str_lines,2}''] 08/22 15:43
→ sunev: 不過你這裡要用eval,之後你所謂的「將所有資訊讀入」 08/22 15:44
→ sunev: 打算怎麼做?一樣用eval?資訊一直都在那個table函數啊? 08/22 15:44
我用回文內的部分沒問題,內容都以項目名重新命名。
我的意思為,假設我的說明檔內有一百條,則跑了我詢問部分前的程序後,
可得到一個table,內部有該說明檔內的項目及內容(值)各一百項。
而我的問題部分則可以將該table內的內容以項目命名,且該項目名稱不變。
若未來的說明檔增加了其他項目(>一百條),則我一樣可以讀檔,
並將我要的項目及其值抓出來使用。
即使說明檔內的項目增加而改變各項目的排序,而我事先已經確定我需要的項目為何,
我都可以快速讀檔並用該項目名稱找到對應的值。
早期我是先記好各項目位置後,只抓特定值,但自從說明檔改版後新增資訊,
就得親自打開說明檔去找被更改後各項目的位置。
前文我提到的方法是我想到目前較自動化且好維護的方法
※ 編輯: fxxkjoe1231 (49.218.39.53), 08/22/2016 16:36:13
推 sunev: 得到table的程序已經自動化了,既使說明檔做了變動,也可以 08/22 16:44
→ sunev: 自動產生新的table? 08/22 16:44
→ sunev: 所以你需要的只是「用該項目名稱找到對應的值」,那用那個 08/22 16:45
→ sunev: table變數就可以辦到了啊? 08/22 16:45
我大概懂意思了,是指透過字串判斷直接去找table內對應的值?
※ 編輯: fxxkjoe1231 (49.218.39.53), 08/22/2016 22:14:11
推 sunev: 差不多是這個意思,可能要用for,不過才幾百個也不會太慢 08/22 22:23