将文本保存在列表或其他列表中

时间:2013-07-23 07:27:35

标签: prolog

我有这段代码:

open('file.txt', append, Stream),          
write(Stream, (clause(t1))),  
close(Stream)

我在我的程序中重复了几次,然后我打开并关闭了几次文件。我可以只在将内容保存到带有追加的列表中时打开文件,最后我将此列表保存在文件中吗?

1 个答案:

答案 0 :(得分:2)

您可以为Stream使用符号别名,然后open使用所选别名的文件,运行程序,发送将别名作为Stream发送的写入,然后在完成后关闭文件

这是一个虚拟的例子:

save :-
    open('myfile.txt', write, _, [alias(clauses)]),
    forall(between(1,100,N),
           format(clauses, 'clause(~d).~n', N)),
    close(clauses).

然后'myfile.txt'将包含

clause(1).
clause(2).
clause(3).
...
clause(99).
clause(100).

需要注意的是用于引用流的别名......