2

我有这个代码:

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

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

4

1 回答 1

2

您可以为 Stream 使用符号别名,然后使用所选别名打开文件,运行程序,发出将别名作为 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).

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

于 2013-07-23T08:08:40.537 回答