Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- namespace DM //Digital Manbaby
- open System
- [<CLIMutable>]
- type GlobalState = {
- manbabyName : string;
- happiness : int;
- GBP : int;
- playerName : string;
- inventory : string array;
- }
- module FileIO =
- open System.Xml.Serialization
- open System.IO
- let filename = "save.dm"
- let chkfile () =
- if not (File.Exists(filename)) then
- File.Create(filename) |> ignore
- type Write = GlobalState -> unit
- let write : Write = fun gs ->
- chkfile ()
- use file = new FileStream(filename, FileMode.Create, FileAccess.Write)
- let ser = new XmlSerializer(typeof<GlobalState>)
- ser.Serialize(file, gs)
- ()
- type Read = unit -> GlobalState
- let read : Read = fun () ->
- chkfile ()
- use file = new FileStream(filename, FileMode.Open, FileAccess.Read)
- let ser = new XmlSerializer(typeof<GlobalState>)
- ser.Deserialize(file) :?> GlobalState
- module Main =
- [<EntryPoint>]
- let main args =
- let gs : GlobalState = {
- manbabyName = "Hue";
- happiness = 100;
- GBP = 5;
- playerName = "sad lad";
- inventory = [|"tendies"; "mcnuggies"|];
- }
- FileIO.write gs
- let gs2 = FileIO.read ()
- printfn "%s" gs2.inventory.[0]
- 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement