我想在prolog中向数据库添加文本。像
这样的东西adding :- tell('a.txt'), write('abc'), told.
但不会覆盖a.txt。我尝试使用像这样的追加:
append('a.txt'),write('abc'), told.
但它不起作用。监听器只是给出“否”响应,文件不会更改。 我正在使用Amzi Prolog,顺便说一句。
任何帮助将不胜感激。
答案 0 :(得分:5)
您必须使用这些IO谓词:open / 3,write / 2,close / 1。
adding :- open('a.txt', append, Handle), write(Handle, 'abc'), close(Handle).
检查here
答案 1 :(得分:1)
在SWI-Prolog中,这有效:
?- append('a.txt'), write('abc'), told.
true.
?- append('a.txt'), write('abc'), told.
true.
也许Amzi Prolog没有append/1
,这会导致失败而不是异常。或者文件可能不可写(这会导致失败,而不是异常)。