Selamat petang agan-agan !! Waktu yang tepat rasanya untuk posting.Setelah sekian abad vacum , akhirnya bisa juga ngasih tutorial mengenai Cara Membuat Aplikasi HJ Split di Delphi 7.Tau kan HJSplit itu apa !?Yuph benar sekali , HJSplit adalah aplikasi untuk memecah file menjadi beberapa file dengan ukuran yang lebih kecil.Fungsinya !? Kalau anda seperti saya (yang suka download film) tentu lebih menyenangkan bila mendownload file dengan ukuran lebih kecil walaupun jumlahnya lebih banyak.Lalu , bisakah kita membuat software tersebut
dengan Delphi 7 !? Tentu saja bisa!Ayo ikutin langkah-langkahnya.
dengan Delphi 7 !? Tentu saja bisa!Ayo ikutin langkah-langkahnya.
Hal yang krusial dari pembuatan aplikasi ini ialah , proses pemecahan/split dan penyatuan/join.Disini saya akan membuat dua function.Masing-masing untuk proses split dan satu lagi proses join.Ayo simak.Pertama kita akan membuat function splitFile.Yaitu function untuk memecah file.Ketikan kode berikut setelah {$R *.dfm}
- //function split
- function SplitFile(namaFile : TFileName; ukuranFile : Integer; ProgressBar : TsGauge) : Boolean; //anda bisa mengganti TsGauge dengan TProgressBar
- var
- i : Word;
- fs, sStream: TFileStream; //variabel yang dibutuhkan
- namaFileSplit,ext: String;
- begin
- ProgressBar.Progress := 0; //mengeset nilai progress bar 0 , bila menggunakan TProgressBar , gunakan properties posistion
- fs := TFileStream.Create(namaFile, fmOpenRead or fmShareDenyWrite); //membuat fileStream baru lalu di assign ke fs
- try
- for i := 1 to Trunc(fs.Size / ukuranFile) + 1 do
- begin
- ext:=ExtractFileExt(namaFile); //mendapatkan extensi sebelum di split
- namaFileSplit := ChangeFileExt(namaFile+ext,'.'+FormatFloat('000', i)); //mengganti extensi terurut angka
- sStream := TFileStream.Create(namaFileSplit, fmCreate or fmShareExclusive);
- try
- if fs.Size - fs.Position < ukuranFile then
- ukuranFile := fs.Size - fs.Position;
- sStream.CopyFrom(fs, ukuranFile);
- ProgressBar.Progress := Round((fs.Position / fs.Size) * 100);//menggerakan progress bar
- finally
- sStream.Free; //membebaskan stream
- end;
- end;
- finally
- fs.Free;//membebaskan fs/stream
- end;
- end;
Untuk memanggil function tersebut misal dengan menekan tombol , ketikan kode berikut
- procedure TForm1.Button1Click(Sender: TObject);
- begin
- SplitFile(FileYangAkanDiSplit,UkuranSplitPerFile, ProgressBar1);
- //untuk ukuranSplitPerFile bertipe integer dan ukurannya bytes,jadi bila di isi 1000000 bytes sama dengan 1 MB
- end;
Selanjutnya kita akan membuat function untuk join file yang sudah di split tadi.Ketikan kode berikut di bawah function splitFile
- //function join file
- function joinFiles(namaFile, joinNamaFile : TFileName) : Boolean;
- var
- i: integer;
- fs, sStream: TFileStream;
- filenameOrg: String;
- begin
- i := 1;
- fs := TFileStream.Create(joinNamaFile, fmCreate or fmShareExclusive);
- try
- while FileExists(namaFile) do
- begin
- sStream := TFileStream.Create(namaFile, fmOpenRead or fmShareDenyWrite);
- try
- fs.CopyFrom(sStream, 0);
- finally
- sStream.Free;
- end;
- Inc(i);
- namaFile := ChangeFileExt(namaFile, '.'+ FormatFloat('000', i));
- end;
- finally
- fs.Free;
- end;
- end;
Untuk memanggil fungsi tersebut misal dengan menekan tombol , ketikan kode berikut
- procedure TForm1.Button2Click(Sender: TObject);
- begin
- joinFiles(fileYangAkanDiJoin,outputFileYangTelahDiJoin);
- end;
Yuph , cukup mudah bukan.Atau malah bingung !?lol.Beruntunglah kalau anda bingung , karena saya sudah membuat contoh program tersebut beserta source codenya sehingga mudah digunakan.Dan tentunya membantu agan-agan untuk memahaminya.Perlu di ketahui , saya membuat program ini dengan tambahan component Alpha Lite.Yaitu sejenis skins serta component pihak ketiga.Jangan khawatir , semua file yang dibutuhkan untuk membuat program tersebut telah saya siapkan dan bisa agan download DISINI.Cukup deh tutorialnya sampai disini.Semoga bermanfaat ya.
0 komentar:
Post a Comment