我正在解析一个相当大的文件,我想定期更新一个进度条以指示到目前为止我已经解析了多少。
我能想到的最直接的方法是ParsecT
用作 monad 转换器,IO
这样我就可以提升打印进度条更新,并使用 aHandle
作为流提供程序,这样我就可以使用hFileSize
and检查进度hTell
。
所以这意味着我需要一个实例Stream Handle IO Char
。滚动我自己的(使用)应该不难,hGetChar
但我想我会看看是否已经存在一个,以处理任何不可预见的问题(比如我是否需要插入一些缓冲以提高速度)。