Khi tiêu đề cho biết, tôi muốn đọc các dòng từ một tệp nằm bên trong kho lưu trữ zip, sử dụng đường dẫn zip (tệp zip Tôi đang xử lý là rất lớn, vì vậy tôi cần để có thể làm điều này trong bộ nhớ liên tục). Tôi mò mẫm ý tưởng rất cơ bản về ống dẫn, nhưng chưa bao giờ sử dụng chúng trong sự tức giận, và tôi cảm thấy khá khó khăn khi bắt đầu từ đâu. Tôi đã đọc hướng dẫn ống dẫn, nhưng tôi gặp khó khăn khi kết hợp với vấn đề của tôi.Đọc các dòng từ một tệp bên trong kho lưu trữ zip bằng cách sử dụng mã bưu điện của Haskell
Các tài liệu zip-ống dẫn nói người ta có thể nguồn từ một kho lưu trữ zip qua giống như sau:
import qualified Data.Conduit.Binary as CB
import Codec.Archive.Zip
withArchive archivePath $ do
name:_ <- entryNames
sourceEntry name $ CB.sinkFile name
Tôi đoán những gì tôi cần làm là viết một cái gì đó ở vị trí của CB.sinkFile
. Data.Conduit.Text
có chức năng lines
- điều này có thể được sử dụng theo cách nào đó để lấy các dòng ra khỏi tệp không?
Tôi thực sự đánh giá cao một ví dụ đơn giản, giả sử sử dụng putStrLn
để viết ra các dòng của tệp văn bản đơn giản được lưu trữ bên trong tệp zip. Cảm ơn trước.
Cảm ơn rất nhiều, điều này có ý nghĩa hơn nhiều. Sử dụng ống dẫn đã làm cho mã của tôi sạch hơn nhiều. – Chris