问题
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