[Haskell-cafe] Parsec and binary files

Atila Romero atilaromero at yahoo.com.br
Thu Jun 8 12:50:06 EDT 2006


Yes, with FPS it works! And is so elegant!

Thanks!

Atila


Duncan Coutts wrote:
> On Thu, 2006-06-08 at 11:49 -0300, Atila Romero wrote:
>   
>> Im trying to use parsec to split a file, using the null character as a 
>> separator.
>> Works fine with very small files but fails if they are a little bit larger.
>> I guess parsec is trying to parse everthing first and print the results 
>> last.
>>     
>
> I think so.
>
>   
>> Am I doing something wrong or parsec is just not the right tool to the job?
>>     
>
> Right. In this case I would use lazy byte strings.
>
> module main where
>
> import qualified Data.ByteString.Lazy as B
>
> main = do
>   input <- B.getContents
>   let emails = B.split 0 input
>   ...
>
> This lazily reads and splits into chunks using a 0 byte as separator.
>
> However this needs a fairly recent version of the 'fps' package. (In ghc
> 6.6 Data.ByteString and Data.ByteString.Lazy will be provided in the
> base package.)
>
> Duncan
>
>
>   


		
_______________________________________________________ 
Novidade no Yahoo! Mail: receba alertas de novas mensagens no seu celular. Registre seu aparelho agora! 
http://br.mobile.yahoo.com/mailalertas/ 
 



More information about the Haskell-Cafe mailing list