普通的 lisp 逐行读取 gzip 流
Common lisp reading a gzipped stream line by line
我目前正在处理一个问题,我必须逐行读取压缩文件,然后进一步处理每一行并对其进行处理。
我设法使用以下代码从 stdin 读取:
(defun process ()
(princ (split-sequence:split-sequence #\Space (read-line))))
(defun main (args)
(process))
*这将是一个命令行工具
我运行它是:
cat file.txt | ./executable
这工作正常,但它只打印第一行。我假设我必须在第一部分插入某种形式的循环,但我不确定如何完成。
感谢您的帮助!
我使用以下方法解决了这个问题:
(loop for line = (read-line) ; stream, no error, :eof value
until (eq line :eof)
do (princ line))
我目前正在处理一个问题,我必须逐行读取压缩文件,然后进一步处理每一行并对其进行处理。
我设法使用以下代码从 stdin 读取:
(defun process ()
(princ (split-sequence:split-sequence #\Space (read-line))))
(defun main (args)
(process))
*这将是一个命令行工具
我运行它是:
cat file.txt | ./executable
这工作正常,但它只打印第一行。我假设我必须在第一部分插入某种形式的循环,但我不确定如何完成。
感谢您的帮助!
我使用以下方法解决了这个问题:
(loop for line = (read-line) ; stream, no error, :eof value
until (eq line :eof)
do (princ line))