On Thu, 2 Oct 2008, George Pollard wrote:

Hello all,

I'm currently working on a (toy) ID3 [1] tag reader, which made me think
of a library which might be quite useful.

The structure of an ID3 tag goes something like this:

Header:
- total size of tag
- other header info
A series of frames, each with:
- total size of frame
- other header info
- frame data

Since the ID3 tag as a whole has size information, I need to pass that
into the frame-reading functions to ensure that I never read past the
end of the total header. This exact same requirement is present within
the frame-reading function itself; it must read the frame data without
reading past the end of the frame.

I've done exactly this for a MIDI file parser. It uses a State monad transformer which handles the number of remaining bytes in the chunk.
   http://darcs.haskell.org/midi/src/Sound/MIDI/Parser/Restricted.hs

_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to