かなり大きなファイルを解析しています。これまでに解析したファイルの量を示すために、プログレスバーを定期的に更新したいと思います。
これを行うために私が考えることができる最も直接的な方法はParsecT
、モナド変換子として使用して、進行状況IO
バーの更新の印刷を解除Handle
し、をストリームプロバイダーとして使用して、とを使用して進行状況を確認できるようにすることhFileSize
ですhTell
。
つまり、インスタンスが必要Stream Handle IO Char
です。(を使用して)自分でロールするのは難しいことではありませんがhGetChar
、予期しない問題(速度のためにバッファリングを挿入する必要があるかどうかなど)を処理するために、すでに存在するかどうかを確認することにしました。