Prolog如何在现有文件中保存文件

时间:2011-11-25 13:39:44

标签: file io prolog

如何在添加新数据后保存现有文件

add_a_link(X,Y) :-
    tell('alink.txt'),
    write(X),
    write('.'),
    write(Y),
    write('.'),
    put(10),
    told,
    write('data written'),
    nl.

此代码仅重写文本文件。

1 个答案:

答案 0 :(得分:3)

使用open/3和面向流的I / O:

open(file, append, S), write(S, info(X,Y)), put_char(S,.), nl(S), close(S).

使用tell/1told非常不可靠。很容易发生输出被意外写入另一个文件。

编辑:以下是一个示例,用于说明tell/1told的极不可靠的属性。

说,你写tell(file), X > 3, write(biggervalue), told.只要X > 3,这个工作正常。但是如果值较小,则此查询将失败并且不会写入任何内容。这可能是你的意图。但是,程序中其他位置的下一个输出现在将进入file。这是你永远不想发生的事情。因此,ISO-Prolog没有tell/1told,而是open/3close/1