Stream 如何使用SWI Prolog从.txt文件中删除前n行或后n行?

Stream 如何使用SWI Prolog从.txt文件中删除前n行或后n行?,stream,prolog,Stream,Prolog,我正在通过SWI Prolog读取一个文本文件,希望跳过该文本文件的前n行和最后m行。这怎么可能 以下是我如何读取我的文件: read_and_print_file(File):- open(File, read, Stream), skip('skip_apart_from_here'), # <- ? repeat, ( at_end_of_stream(Stream) -> ! ; get_ch

我正在通过SWI Prolog读取一个文本文件,希望跳过该文本文件的前n行和最后m行。这怎么可能

以下是我如何读取我的文件:

read_and_print_file(File):-
    open(File, read, Stream),
    skip('skip_apart_from_here'), # <- ?
    repeat,
    (   at_end_of_stream(Stream)
            -> !
            ; get_char(Stream, Char),
            write(Char),
            fail
    ),
    close(Stream).
读取和打印文件(文件):-
打开(文件、读取、流),
跳过(‘从这里跳过’)!
; 获取字符(流,字符),
写(字符),
失败
),
关闭(流)。

现在,您没有存储更大的流块,而是直接编写单个字符。如果你想跳过最后的m行,我想没有办法存储至少m行,因为你必须向前看m行…我想我会让它变得简单-只需读入所有行,删除前n行和最后m行,然后开始写。这是您的一个选择,还是您正在处理大型文件,因此希望最小化中间存储?