问题
I would like to read a file, modify lines and write the results to another file.
readtofile :-
open('inputfile.txt', read, Str),
read_file(Str,Lines),
close(Str).
read_file(Stream) :-
at_end_of_stream(Stream).
read_file(Stream) :-
\+ at_end_of_stream(Stream),
read(Stream),
modify(Stream,Stream2),
write_file(Stream2),
read_file(Stream).
write_file('outputfile.txt', Phrase) :-
open('outputfile.txt', write, Stream),
writeln(Stream, Phrase),
close(Stream).
回答1:
I would write something like
tranform_file :-
open('inputfile.txt', read, I),
open('outputfile.txt', write, O),
transform_lines(I, O),
close(O),
close(I).
transform_lines(I, O) :-
read_line_to_codes(I, L),
( L == end_of_file
-> true
; transform_line(L, T),
format(O, '~s~n', [T]),
transform_lines(I, O)
).
(note: untested)
来源:https://stackoverflow.com/questions/16855982/how-read-a-file-and-write-another-file-in-prolog