2011-11-29 407 views
1

我想讀取每行中將包含名稱的文件。我不知道如何用SWI Prolog來做到這一點。我對C/C++有足夠的瞭解,所以有什麼方法可以和Prolog做同樣的事情?如何在SWI Prolog中讀取文件?

+1

打開文件檢查此http://www.swi-prolog.org/pldoc/doc_for?object=section%282,%274.15%27,swi%28%27/doc/Manual/IO.html%27 %29%29,實際閱讀數據檢查墊的答案。還有這個http://www.swi-prolog.org/pldoc/doc_for?object=section%282,%27A.23%27,swi%28%27/doc/Manual/readutil.html%27%29 %29 –

回答

2

在我看來,從SWI Prolog中讀取文件的最佳方式(特別是如果你想做一些沒有被標準謂詞所覆蓋的東西,比如讀取/從流中讀取Prolog術語的東西),首先要寫一個DCG (=明確的子句語法)來聲明性地指定你想要描述的內容。您可以在查詢中交互使用DCG來嘗試它(即解析並經常生成它描述的字符串)。然後,使用SWI-Prolog的庫(pio)將DCG應用於帶有phrase_from_file/2的文件。

+0

另請參閱[這個已關閉的線程](http://stackoverflow.com/questions/8231754/reading-a-file-in-prolog) – false

+1

你能給我一個這個請示例代碼。 –