2017-04-05 67 views
0

我目前正在处理一个问题,我必须逐行读取一个压缩文件,并进一步处理每一行,并对其进行处理。通用lisp逐行读取gzipped流行

我设法使用下面的代码从标准输入读取:

(defun process() 

    (princ (split-sequence:split-sequence #\Space (read-line)))) 

(defun main (args) 
    (process)) 

*这将是一个命令行工具

哪里跑它作为:

cat file.txt | ./executable 

能正常工作,但它只打印第一行。我假设我必须在第一部分中插入某种形式的循环,但我不确定这是如何完成的。

谢谢你的帮助!

回答

1

我解决了这个使用:

(loop for line = (read-line) ; stream, no error, :eof value 
    until (eq line :eof) 
    do (princ line))