Mega Code Archive

 
Categories / Delphi / Files
 

File split and merge

Title: file split and merge Question: split large size of file into more file Answer: function Dosya_Bol:Byte; var i : Integer; begin for i := 1 to 700 do begin BlockRead(FromF, Buf, SizeOf(Buf), NumRead); BlockWrite(ToF, Buf, NumRead, NumWritten); Form1.PB.Position := Form1.PB.Position+NumRead; if NumRead = 0 then begin Dosya_Bol := 0; Break; end; if NumWritten NumRead then begin Dosya_Bol := 1; Break; end; end; end; procedure TForm1.Button1Click(Sender: TObject); var i,boy : Integer; dad : String; yer : Byte; begin OD.Filter := 'Tm Dosyalar|*.*'; if OD.Execute then begin Label1.Caption:=OD.FileName; PB.Position:=0; AssignFile(FromF, OD.FileName); Reset(FromF, 1); PB.Max := FileSize(FromF); i := 1; repeat dad := 'file' + IntToStr(i) + '.blt'; AssignFile(ToF, dad); Rewrite(ToF, 1); yer := dosya_bol; CloseFile(ToF); i := i + 1; until yer = 0; CloseFile(FromF); Memo1.Lines.Clear; Memo1.Lines.Add(OD.FileName); Memo1.Lines.Values['ds'] := IntToStr(i-1); Memo1.Lines.SaveToFile('ballog.blf'); end; end; procedure TForm1.Button2Click(Sender: TObject); var d_s,i : Integer; d_a : String; begin OD.Filter := 'Balta dosyalar|*.blf'; if OD.Execute then begin Memo1.Lines.LoadFromFile(OD.FileName); d_a := Memo1.Lines[0]; d_s := StrToInt(Memo1.Lines.Values['ds']); AssignFile(ToF, d_a); Rewrite(ToF, 1); for i:=1 to d_s do begin AssignFile(FromF, 'file' + IntToStr(i) + '.blt'); Reset(FromF, 1); PB.Position := 0; PB.Max := FileSize(FromF); repeat BlockRead(FromF, Buf, SizeOf(Buf), NumRead); BlockWrite(ToF, Buf, NumRead, NumWritten); PB.Position := PB.Position + NumRead; until (NumRead = 0) or (NumWritten NumRead); CloseFile(FromF); end; CloseFile(ToF); end; end;