将内容压缩为灰色流?

时间:2016-01-16 00:57:26

标签: lisp common-lisp

我正在编写一个CL库来阅读名为“xlmanip”的MS Excel(tm)电子表格(尚未准备好黄金时段 - 仅读取“xlsx”电子表格,适用于“我想要的80%用例”对细胞内容进行操作“......但我离题了。”

在阅读“xlsx”(XML格式的ZIP存档)时,让我担心的一件事是,当前的ZIP处理库Common Lisp ZIP将压缩内容解压缩为(vector (unsigned-byte 8))。对于大型电子表格,这会给最终用户带来问题。

我想到的一个替代方案是延迟加载 - let-over-lambda一个闭包,可以在需要时有效地要求加载工作表。然而,这只是推迟了不可避免的事情。

是否有任何ZIP文件CL库将灰色流返回到ZIP组件的内容而不是(可能很大)(vector (unsigned-byte 8))

修改:澄清

我正在寻找返回流的ZIP组件功能,而不是接收流的功能。采用流的函数将ZIP组件的内容直接写入与流关联的文件。我宁愿 xlmanip 直接从流中读取,就像ZIP组件(隐式地,虚拟地)是一个文件一样。

1 个答案:

答案 0 :(得分:1)

Chipz可以将ZIP解压缩为流。它提供了一个解压缩功能,您可以在其中为输出流和输入流进行解压缩,并返回可以读取解压缩内容的输出流。