Download

9/01/2010

Cara Membuat Aplikasi WinRar di Delphi 7


Selamat siang agan-agan.Pada puasa gak !? Hehe.Untungnya siang ini cuaca agak mendung , jadinya tidak terlalu kehausan.Biarpun puasa , aktifitas coding , blogging dan learning tetep harus jalan.Pada postingan kali ini , saya akan memberikan tutorial Cara Membuat Aplikasi WinRar di Delphi 7.Udah tau dong WinRar itu apa !? Yups , aplikasi yang berfungsi untuk mengkompres beberapa file menjadi satu , dan tentu mendekompresnya lagi.Berguna banget kalau kita mau mengkopi file yang berjumlah banyak , agar lebih ringkas dan terlihat rapi.Lalu tunggu apa lagi !? Buka borland Delphi 7 anda dan mari kita berguling (maksudnya rolling !! haha)

Yang paling esensial dari program yang akan kita buat ini , adalah 2 buah procedure.Masing-masing untuk kompres dan dekompres file.Pertama , kita akan membuat procedure untuk kompres terlebih dahulu.Ketikan kode berikut setelah {$R *.dfm}


  1. procedure kompresFile(Files : TStrings; const namaFile : String);  
  2. var  
  3.   fileMasuk, fileKeluar, tmpFile : TFileStream;  
  4.   kompres : TCompressionStream;  
  5.   i,l : Integer;  
  6.   s : String;  
  7.   
  8. begin  
  9.   if Files.Count > 0 then  
  10.   begin  
  11.     fileKeluar := TFileStream.Create(namaFile,fmCreate);  
  12.     try  
  13.       { jumlah file yang akan di kompres }  
  14.       l := Files.Count;  
  15.       fileKeluar.Write(l,SizeOf(l));  
  16.       for i := 0 to Files.Count-1 do  
  17.       begin  
  18.         fileMasuk := TFileStream.Create(Files[i],fmOpenRead);  
  19.         try  
  20.           { nama asli file }  
  21.           s := ExtractFilename(Files[i]);  
  22.           l := Length(s);  
  23.           fileKeluar.Write(l,SizeOf(l));  
  24.           fileKeluar.Write(s[1],l);  
  25.           { ukuran asli file }  
  26.           l := fileMasuk.Size;  
  27.           fileKeluar.Write(l,SizeOf(l));  
  28.           { kompress dan simpan file temporari}  
  29.           tmpFile := TFileStream.Create('tmp',fmCreate);  
  30.           kompres := TCompressionStream.Create(clMax,tmpfile);  
  31.           try  
  32.             kompres.CopyFrom(fileMasuk,l);  
  33.           finally  
  34.             kompres.Free;  
  35.             tmpFile.Free;  
  36.           end;  
  37.           { menambahkan file terkompresi ke file tujuan }  
  38.           tmpFile := TFileStream.Create('tmp',fmOpenRead);  
  39.           try  
  40.             fileKeluar.CopyFrom(tmpFile,0);  
  41.           finally  
  42.             tmpFile.Free;  
  43.           end;  
  44.         finally  
  45.           fileMasuk.Free;  
  46.         end;  
  47.       end;  
  48.     finally  
  49.       fileKeluar.Free;  
  50.     end;  
  51.     DeleteFile('tmp');  
  52.   end;  
  53. end;  

Perhatikan bahwa variabel files bertipe TString.Artinya , kita bisa menambahkan beberapa file sekaligus dan menjadikannya satu file terkompresi.Untuk memanggil procedure diatas misal dengan menekan tombol , gunakan kode berikut


  1. procedure TForm1.button1Click(Sender: TObject);  
  2. begin  
  3.   kompresFile(namaBeberapaFileYangAkanDiKompres , namaOutputFileTerkompres);  
  4. end;  

Selanjutnya adalah , kita akan membuat procedure untuk dekompres file yang terkompres sebelumnya.Ketikan procedure di bawah ini setelah procedure kompresFile


  1. procedure dekompresFile(const namaFile, folderTujuan : String);  
  2. var  
  3.   tujuan,s : String;  
  4.   dekompres : TDecompressionStream;  
  5.   fileMasuk, fileKeluar : TFilestream;  
  6.   i,l,c : Integer;  
  7. begin  
  8.   
  9.   tujuan := IncludeTrailingPathDelimiter(folderTujuan);  
  10.   
  11.   fileMasuk := TFileStream.Create(namaFile,fmOpenRead);  
  12.   try  
  13.     { number of files }  
  14.     fileMasuk.Read(c,SizeOf(c));  
  15.     for i := 1 to c do  
  16.     begin  
  17.       { membaca nama file }  
  18.       fileMasuk.Read(l,SizeOf(l));  
  19.       SetLength(s,l);  
  20.       fileMasuk.Read(s[1],l);  
  21.       { membaca ukuran file }  
  22.       fileMasuk.Read(l,SizeOf(l));  
  23.       { dekompres file dan menyimpannya }  
  24.       s := tujuan+s; //memasukan tujuan pathnya  
  25.       fileKeluar := TFileStream.Create(s,fmCreate);  
  26.       dekompres := TDecompressionStream.Create(fileMasuk);  
  27.       try  
  28.         fileKeluar.CopyFrom(dekompres,l);  
  29.       finally  
  30.         fileKeluar.Free;  
  31.         dekompres.Free;  
  32.       end;  
  33.     end;  
  34.   finally  
  35.     fileMasuk.Free;  
  36.   end;  
  37. end;  

Dan untuk memanggil procedure diatas misal dengan menekan tombol , ketikan kode berikut


  1. procedure TForm1.button1Click(Sender: TObject);  
  2. begin  
  3.   dekompresFile(fileYangAkanDiDekompres,folderTujuan);  
  4. end;  

Teettooooott !! Beres deh.Apanya yang beres yu !? Dari tadi kan ente gak nyuruh masukin component apapun !! Emang sih , hehe .. Tapi tenang , saya sudah membuat contoh program berikut source codenya yang bisa agan-agan download DISINI.Silahkan agan modifikasi sesuka hati , yang terpenting dari program tersebut ya 2 procedure di atas tadi.Implementasinya dalam program , tergantung selera anda dong !? hehe..Sekian postingan kali ini , semoga bermanfaat.

0 komentar:

Post a Comment

Newer Post Older Post Home
Aulia DirUt. Powered by Blogger.
 

Followers

 

Templates by Nano Yulianto | CSS3 by David Walsh | Powered by {N}Code & Blogger