タイトルが示すように、zip コンジットを使用して、zip アーカイブ内にあるファイルから行を読み取れるようにしたいと考えています (私が扱っている zip ファイルは非常に大きいため、できるようにする必要がありますこれは定数メモリ内にあります)。私はコンジットの非常に基本的なアイデアを理解していますが、それらを怒って使用したことは一度もありません。コンジットのチュートリアルを読みましたが、それを自分の問題と一致させるのに苦労しています。
zip コンジットのドキュメントには、次のような方法で zip アーカイブから入手できると書かれています。
import qualified Data.Conduit.Binary as CB
import Codec.Archive.Zip
withArchive archivePath $ do
name:_ <- entryNames
sourceEntry name $ CB.sinkFile name
私がする必要があるのは、代わりに何かを書くことだと思いますCB.sinkFile。Data.Conduit.Textにはlines関数があります — これを何らかの方法で使用して、ファイルから行を取り出すことができますか?
putStrLnたとえば、 zip ファイル内にアーカイブされた単純なテキスト ファイルの行を書き出すために使用するなど、単純な例を示していただければ幸いです。前もって感謝します。