Programlama | Programlama Dilleri | C Programlama Dili |C++

Hata
  • XML Parsing Error at 1:82. Error 9: Invalid character


Dosya Parçalama ve Birle?tirme

Haskell programlama dilinde yaz?lm?? bu fonksiyonda bir dosyan?n parçalara bölünmesi ve tekrardan bölünmesi sa?lanm??t?r. Parçalama i?lemi s?ras?nda 2 argüman girilmektedir. Birinci argüman dosyan?n yolunu ikincisi ise dosyan?n kaç parçaya ayr?laca??n? belirtmektedir. Dosya parçalama dosya boyutunun parçalanacak say?ya bölünmesine dayanmaktad?r. Dosya parçaland?ktan sonra ana dosya silinmektedir. Birle?tirme i?lemi s?ras?nda parçalar?n bulundu?u konumda dosyan?n ad? girilir ve dosya birle?tirilir ve parçalar silinir.

 Ör Komutlar:

parcala "C:\\english.txt" 6
birlestir "C:\\english.txt"

Program Kodu :

  1.  
  2. import System.IO
  3. import System.Environment
  4. import System.Directory
  5.  
  6. main =
  7.          getArgs >>= \args ->
  8.          if (length args)== 2 then
  9.          parcala (head args) (read(head (tail args))::Integer)
  10.          else if (length args)==1 then
  11.          birlestir (head args)
  12.          else
  13.          putStr "Yanlis Kullanim" >>
  14.          return ()
  15.  
  16. parcala f p =
  17.              openFile f ReadMode >>= \acilan ->
  18.              hFileSize acilan >>= \boyut ->
  19.              parcala2 f acilan (div boyut p) 0 p >>
  20.              hClose acilan >>
  21.              removeFile f
  22.  
  23. parcala2 f h kb z p =
  24.                     if z==p  then
  25.                     return ()
  26.                     else
  27.                     openFile (f++show(z+1)++".part") WriteMode >>= \parcaci ->
  28.                     parcayazdir h kb parcaci >>
  29.                     parcala2 f h kb (z+1) p                
  30.  
  31. parcayazdir _ 0   parcaci = hClose parcaci >>
  32.                             return ()            
  33. parcayazdir h kb parcaci  =
  34.                            hIsEOF h >>= \son ->
  35.                            if son then
  36.                            return ()
  37.                            else
  38.                            hGetChar h>>= \char ->
  39.                            hPutChar parcaci char>>
  40.                            parcayazdir h (kb-1) parcaci
  41.          
  42.          
  43.  
  44. birlestir f = birlestir2 f 1
  45.  
  46. birlestir2 f h =
  47.               doesFileExist (f++(show(h))++".part") >>= \son ->
  48.               if son then
  49.               openFile f AppendMode >>= \ yazilacak ->
  50.               openFile (f++(show(h))++".part") ReadMode >>= \ acilacak ->
  51.               hFileSize acilacak >>= \ kb ->
  52.               parcayazdir acilacak kb yazilacak >>
  53.               hClose yazilacak >>
  54.               hClose acilacak >>
  55.               removeFile (f++(show(h))++".part") >>
  56.               birlestir2 f (h+1)
  57.               else
  58.               return ()
  59.  
 

Yorumlar (0)
Sadece kayıtlı kullanıcılar yorum yazabilir!
 
amınıza koyayım amınıza koyayım amınıza koyayım amınıza koyayım amınıza koyayım amınıza koyayım