如何在prolog中读取文件和写入另一个文件

如何在prolog中读取文件和写入另一个文件,prolog,Prolog,我想读取一个文件,修改行并将结果写入另一个文件 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), mo

我想读取一个文件,修改行并将结果写入另一个文件

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). 可读文件:- 打开('inputfile.txt',读取,Str), 读取文件(Str,行), 关闭(Str)。 读取文件(流):- 在_流(流)的_端。 读取文件(流):- \+在_流(流)的_端_处, 读(流), 修改(流,流2), 写入_文件(Stream2), 读取文件(流)。 写入文件('outputfile.txt',短语):- 打开('outputfile.txt',写入,流), 书面语(流、短语), 关闭(流)。
我会写这样的东西

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)
   ).
(注:未经测试)