【发布时间】:2011-11-25 13:39:44
【问题描述】:
添加新数据后如何保存在现有文件中
add_a_link(X,Y) :-
tell('alink.txt'),
write(X),
write('.'),
write(Y),
write('.'),
put(10),
told,
write('data written'),
nl.
此代码仅重写文本文件。
【问题讨论】:
添加新数据后如何保存在现有文件中
add_a_link(X,Y) :-
tell('alink.txt'),
write(X),
write('.'),
write(Y),
write('.'),
put(10),
told,
write('data written'),
nl.
此代码仅重写文本文件。
【问题讨论】:
使用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。
【讨论】: