build-type: Simple cabal-version: >= 1.8 name: binary-file version: 0.6 stability: experimental author: Yoshikuni Jujo maintainer: Yoshikuni Jujo license: BSD3 license-file: LICENSE category: File synopsis: read/write binary file description: > runghc -XQuasiQuotes exam.hs some.bmp out.bmp . exam.hs: . > import File.Binary > import System.Environment > import Data.ByteString as BS > > main = do > [inf, outf] <- getArgs > > -- cnt <- readBinaryFile inf > cnt <- BS.readFile inf > let bmp = readBitmap cnt > print $ readBitmap cnt > > let out = writeBitmap bmp { > authorFirst = "Yoshikuni ", > authorSecond = "Jujo " > } > -- writeBinaryFile outf out > BS.writeFile outf out > > [binary| > > Bitmap > > 2: "BM" > 4: fileSize > 2: 0 > 2: 0 > 4: offset > 4: 40 > 4: bitmapWidth > 4: bitmapHeight > 2: 1 > 2: bitsPerPixel > 4: compressionMethod > 4: imageSize > 4: horizontalResolution > 4: verticalResolution > 4: numberOfColors > 4: importantColors > 4<(Int, Int, Int)>[numberOfColors]: colors > -- bitsPerPixel/8[imageSize*8/bitsPerPixel]: image > imageSize: image > 10: authorFirst > 10: authorSecond > > |] . library hs-source-dirs: src exposed-modules: File.Binary other-modules: QuoteBinaryStructure, ParseBinaryStructure, Here build-depends: base > 3 && < 5, template-haskell, peggy, bytestring ghc-options: -Wall