binary-file: read/write binary file
See example directory's sample code.
runghc -XQuasiQuotes -XTypeFamilies -XFlexibleInstances exam.hs some.bmp
exam.hs:
 import File.Binary
 import File.Binary.Instances
 import File.Binary.Instances.LittleEndian
 import System.Environment
 import Data.ByteString.Lazy as BSL
 main = do
	[inf] <- getArgs
   cnt <- BS.readFile inf
	let Right (bmp, rest) = fromBinary () cnt :: (Bitmap, String)
	print bmp
 instance Field (Int, Int, Int) where
    type FieldArgument (Int, Int, Int) = ()
    fromBinary _ s = do
        (b, rest) <- fromBinary 1 s
        (g, rest') <- fromBinary 1 rest
        (r, rest'') <- fromBinary 1 rest' in
        return ((b, g, r), snd $ getBytes 1 1 rest'')
    toBinary _ (b, g, r) = do
        b' <- toBinary 1 b
        g' <- toBinary 1 g
        r' <- toBinary 1 r
        return $ concatBinary [b', g', r', makeBinary $ BSL.singleton 0]
 [binary|
 Bitmap
 deriving Show
 2: "BM"
 4: file_size
 2: 0
 2: 0
 4: offset
 4: 40
 4: width
 4: height
 2: 1
 2: bits_per_pixel
 4: compression
 4: image_size
 4: resolutionH
 4: resolutionV
 4: color_num
 4: important_color_num
 replicate color_num ()[OPENBRACKET][(Int, Int, Int)][CLOSEBRACKET]: colors
 replicate image_size ()[OPENBRACKET]String[CLOSEBRACKET]: image
 |]
          
          
        Modules
- File
- File.Binary
- File.Binary.Instances
- File.Binary.Instances.BigEndian
 - File.Binary.Instances.LSB0
 - File.Binary.Instances.LittleEndian
 - File.Binary.Instances.MSB0
 
 
 - File.Binary.Instances
 
 - File.Binary
 
Downloads
- binary-file-0.15.25.tar.gz [browse] (Cabal source package)
 - Package description (as included in the package)
 
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
- No Candidates
 
| Versions [RSS] | 0.2, 0.3, 0.4, 0.6, 0.12.6, 0.12.8, 0.13.1, 0.13.2, 0.14.1, 0.14.3, 0.15.0, 0.15.9, 0.15.10, 0.15.11, 0.15.13, 0.15.16, 0.15.18, 0.15.22, 0.15.24, 0.15.25 | 
|---|---|
| Dependencies | base (>3 && <5), bytestring, monads-tf, peggy, template-haskell [details] | 
| License | BSD-3-Clause | 
| Author | Yoshikuni Jujo <PAF01143@nifty.ne.jp> | 
| Maintainer | Yoshikuni Jujo <PAF01143@nifty.ne.jp> | 
| Category | File | 
| Home page | https://skami.iocikun.jp/haskell/packages/binary-file | 
| Source repo | head: git clone git://github.com/YoshikuniJujo/binary-file.git this: git clone git://github.com/YoshikuniJujo/binary-file.git(tag 0.15.24)  | 
            
| Uploaded | by YoshikuniJujo at 2015-12-19T08:37:00Z | 
| Distributions | |
| Reverse Dependencies | 2 direct, 0 indirect [details] | 
| Downloads | 16112 total (30 in the last 30 days) | 
| Rating | (no votes yet) [estimated by Bayesian average] | 
| Your Rating | |
| Status | Docs not available [build log] All reported builds failed as of 2016-10-27 [all 4 reports]  |