Stream 如何使用SWI Prolog从.txt文件中删除前n行或后n行?
我正在通过SWI Prolog读取一个文本文件,希望跳过该文本文件的前n行和最后m行。这怎么可能 以下是我如何读取我的文件: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
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行,然后开始写。这是您的一个选择,还是您正在处理大型文件,因此希望最小化中间存储?