我需要在prolog中讀取不同的CSV文件,某些行格式化爲0'\t
,其他文件格式化爲0'
。序言,用CSV從不同的分隔符讀取數據
我用:
read_points(Filename, Points) :-
csv_read_file(Filename, P,[convert(true),functor(pt),separator(0'\t)]),
csv_read_file(Filename, P,[convert(true),functor(pt),separator(0')]).
但忽略了最低的工作,因爲我返回兩種不同的列表。
我該如何編碼correctley? 謝謝。
編輯: 例如與'0\t
文件:
0.1 5
3 5
5 8
例如與'0
:
0.1 5
3 5
5 8
你能展示一個來自你的每種不同類型的CSV文件的行的例子嗎? – lurker
我已經更新了這個問題。 第一個示例是使用TAB鍵製作的,第二個示例僅使用空格鍵。 – UserFromTheSpace
所以你真正想要做的是有一個單一的謂詞,將確定該文件是否使用空間或選項卡,並相應地返回列表?因爲您顯示的單個'csv_read_file'調用可以在相應的正確文件上正常工作。不幸的是,一旦你實例化了列表「P」,那麼它就不能被重新實例化。如果您嘗試使其自動化,您需要添加邏輯來檢查文件的使用分隔符。 – lurker