1 -- !!! Testing hGetPosn and hSetPosn
2 module Main(main) where
7 getPos :: HandlePosn -> HandlePosition
8 getPos (HandlePosn _ x) = x
10 getPosnAndPrint h = do
13 putStrLn ("At position: " ++ show (getPos x) ++ ", found: " ++ show v)
16 recordDoAndRepos h a = do
17 x <- getPosnAndPrint h
23 recordDoAndRepos2 h a = do
24 x <- getPosnAndPrint h
26 hSeek h AbsoluteSeek (getPos x)
30 recordDoAndRepos3 h a = do
31 x <- getPosnAndPrint h
33 hSeek h SeekFromEnd (negate (getPos x + 1))
39 h <- openFile "io001.hs" ReadMode
48 h <- openFileEx "io001.hs" (BinaryMode ReadMode)
56 putStrLn "\nUsing hSeek/AbsoluteSeek: "
57 h <- openFile "io001.hs" ReadMode
66 putStrLn "\nUsing hSeek/SeekFromEnd: "
67 putStrLn "(Don't worry if you're seeing differing numbers here, it might be down to '\\n' vs '\\r\\n')"
68 h <- openFile "io001.hs" ReadMode