我知道我已经有哈斯克尔Data.ByteString.Lazy功能对单个字符分割CSV,如:拆分字节串上一个字节串(而不是Word8或字符)
split :: Word8 -> ByteString -> [ByteString]
但我想拆就多字符的字节字符串(如拆分一个字符串,而不是一个字符):
split :: ByteString -> ByteString -> [ByteString]
我有我需要解析CSV般的文本文件,多字符分隔符,和个人字符本身出现在某些字段中,因此只选择一个分隔符并丢弃其他字符rs会污染数据导入。
我对如何做到这一点有一些想法,但它们看起来有点不守规矩(例如,拿三个Word8s,测试它们是否是分隔符组合,如果它们是开始一个新的字段,进一步递归),以及无论如何,我想我会重塑一个车轮。有没有办法做到这一点,而不从头开始重建函数?
那里的功能很好,请阅读我的想法。 看起来我们对breakSubstring有3的一致意见,即使我仍然需要将toChunks和fromChunk ByteStrings设置为Stict ByteStrings并返回来使用它。任何原因breakSubstring不在ByteString.Lazy中? – 2009-09-09 14:04:51