添加新数据后如何保存现有文件
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
.
关于file - Prolog如何将文件保存在现有文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8269971/