Sto scrivendo una libreria CL per leggere fogli di calcolo MS Excel (tm) chiamati "xlmanip" (non ancora pronti per la prima serata - legge solo fogli di lavoro "xlsx", funziona per il caso di utilizzo dell'80% di "Voglio operare sul contenuto della cella "... ma sto divagando.)Contenuto ZIP come flusso grigio?
Una cosa che mi preoccupa quando si legge" xlsx "(archivi ZIP in formato XML) è che l'attuale libreria di gestione ZIP, Common Lisp ZIP, scompatta i contenuti compressi come a (vector (unsigned-byte 8))
. Per un foglio di calcolo di grandi dimensioni, ciò causerà un problema per l'utente finale.
Un'alternativa a cui ho pensato è il caricamento ritardato, una chiusura automatica che richiede effettivamente il caricamento del foglio di lavoro quando necessario. Tuttavia, questo è solo ritardare l'inevitabile.
Ci sono delle librerie CL di file ZIP là fuori che restituiscono un flusso grigio al contenuto di un componente ZIP rispetto a uno (potenzialmente grande) (vector (unsigned-byte 8))
?
Edit: Chiarimento
Sto cercando una funzione componente ZIP che restituisce un flusso, non uno che prende un flusso . Le funzioni che prendono uno stream scrivono i contenuti del componente ZIP direttamente nel file associato allo stream. Preferirei che xlmanip legge da uno stream direttamente come se il componente ZIP fosse (implicitamente, virtualmente) un file.
Commento irrilevante, ma qualcuno sta per chiedere: il codice 'xlmanip' è su gitlab. –