How do I save on an existing file after adding new data
add_a_link(X,Y) :-
tell('alink.txt'),
write(X),
write('.'),
write(Y),
write('.'),
put(10),
told,
write('data written'),
nl.
this code only re-write the text file.
Use
open/3
and stream oriented I/O:Using
tell/1
andtold
is extremely unreliable. It easily happens that the output is written to another file accidentally.Edit: Here is an example to illustrate the extremely unreliable properties of
tell/1
andtold
.Say, you write
tell(file), X > 3, write(biggervalue), told.
This works fine as long asX > 3
. But with a smaller value this query fails and nothing is written. That might have been your intention. However, the next output somewhere else in your program will now go into thefile
. That's something you never want to happen. For this reason ISO-Prolog does not havetell/1
andtold
but ratheropen/3
andclose/1
.