2011-11-29 190 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

你能给我一个这个请示例代码。 –