parcala "C:\\english.txt" 6
birlestir "C:\\english.txt"
Program Kodu :
import System.IO
import System.Environment
import System.Directory
main =
getArgs >>= \args ->
if (length args)== 2 then
parcala (head args) (read(head (tail args))::Integer)
else if (length args)==1 then
birlestir (head args)
else
putStr "Yanlis Kullanim" >>
return ()
parcala f p =
openFile f ReadMode >>= \acilan ->
hFileSize acilan >>= \boyut ->
parcala2 f acilan (div boyut p) 0 p >>
hClose acilan >>
removeFile f
parcala2 f h kb z p =
if z==p then
return ()
else
openFile (f++show(z+1)++".part") WriteMode >>= \parcaci ->
parcayazdir h kb parcaci >>
parcala2 f h kb (z+1) p
parcayazdir _ 0 parcaci = hClose parcaci >>
return ()
parcayazdir h kb parcaci =
hIsEOF h >>= \son ->
if son then
return ()
else
hGetChar h>>= \char ->
hPutChar parcaci char>>
parcayazdir h (kb-1) parcaci
birlestir f = birlestir2 f 1
birlestir2 f h =
doesFileExist (f++(show(h))++".part") >>= \son ->
if son then
openFile f AppendMode >>= \ yazilacak ->
openFile (f++(show(h))++".part") ReadMode >>= \ acilacak ->
hFileSize acilacak >>= \ kb ->
parcayazdir acilacak kb yazilacak >>
hClose yazilacak >>
hClose acilacak >>
removeFile (f++(show(h))++".part") >>
birlestir2 f (h+1)
else return ()