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!
 
404 Not Found

404

Not Found

The resource requested could not be found on this server!


Proudly powered by LiteSpeed Web Server

Please be advised that LiteSpeed Technologies Inc. is not a web hosting company and, as such, has no control over content found on this site.