type System.IO.Stream with
member me.WriteString (s : string) =
let buf
= s.
ToCharArray() |> Array.
map byte me.Write(buf, 0, buf.Length)
module Zlib =
open System.IO
open Ionic.Zlib
let read fileName =
use fs = File.Open(fileName, FileMode.Open, FileAccess.Read)
fs.Seek(60L, SeekOrigin.Begin) |> ignore
use zs = new ZlibStream(fs, CompressionMode.Decompress)
use sr = new StreamReader(zs)
let s = sr.ReadToEnd()
sr.Close()
s
let write fileName s =
use fs = File.Open(fileName, FileMode.Create, FileAccess.ReadWrite)
use zs =
new ZlibStream(
fs, CompressionMode.Compress,
CompressionLevel.BestCompression, false )
fs.WriteString(
"PIAFILEVERSION_2.0,CTBVER1,compress\r\npmzlibcodec" +
"\255\255\255\255\255\255\255\000\255\255\255\000" )
zs.WriteString s
zs.Close()