如何在添加新数据后保存现有文件
add_a_link(X,Y) :-
tell('alink.txt'),
write(X),
write('.'),
write(Y),
write('.'),
put(10),
told,
write('data written'),
nl.
此代码仅重写文本文件。
答案 0 :(得分:3)
使用open/3
和面向流的I / O:
open(file, append, S), write(S, info(X,Y)), put_char(S,.), nl(S), close(S).
使用tell/1
和told
非常不可靠。很容易发生输出被意外写入另一个文件。
编辑:以下是一个示例,用于说明tell/1
和told
的极不可靠的属性。
说,你写tell(file), X > 3, write(biggervalue), told.
只要X > 3
,这个工作正常。但是如果值较小,则此查询将失败并且不会写入任何内容。这可能是你的意图。但是,程序中其他位置的下一个输出现在将进入file
。这是你永远不想发生的事情。因此,ISO-Prolog没有tell/1
和told
,而是open/3
和close/1
。