Mam problem :) Mianowicie pisze aplikacje, ktora bedzie dzielic pliki mam 2 formy :)
- aplikacja dzielaca
- Wybierz folder....;
Gdy chce podzielic plik wywala mi blad:
http://images1.fotosik.pl/261/8ee3bd9b95c3b785med.png
Unit1:
procedure TForm1.DivFile(const FileName: String);
var
Input : TFileStream;
Output : TFileStream;
i : Integer;
DirPath : String;
BuffSize : Integer;
begin
BuffSize:= (TrackBar1.Position * 1024 * 1024 * 1) ; // pobierz rozmiar bufora ( rozmiar jednego pliku )
DirPath:= Edit1.Text;
Input:= TFileStream.Create(FileName, fmOpenRead);
try
ProgressBar1.Max := (Input.Size div BuffSize);
for I := 0 to (Input.Size div BuffSize) do
begin
Application.ProcessMessages;
ProgressBar1.Position := i;
Input.Seek(i * BuffSize, soFromBeginning);
Output := TFileStream.Create((DirPath + '\' + ExtractFileName(FileName) + IntToStr(i) + '.a4u'), fmCreate);
try
if (Input.Size - (i * BuffSize)) < BuffSize then
Output.CopyFrom(Input, (Input.Size - (i * BuffSize)))
else Output.CopyFrom(Input, BuffSize);
finally
Output.Free;
end;
end;
finally
Input.Free;
end;
end;
procedure TForm1.Button5Click(Sender: TObject);
var
size : integer;
begin
OpenDialog1.Execute;
AssignFile(plik, OpenDialog1.FileName);
Reset(plik, 1); // otwórz plik
Target.Text:= OpenDialog1.FileName;
OpenDialog1.Free;
size:= FileSize(plik);
size:= size div 1024 div 1024 div 1;
Rozmiar.Caption:= ('~ ' + IntToStr(size) + ' MB');
Rozmiar.Font.Color:= clGreen;
end;
procedure TForm1.TrackBar1Change(Sender: TObject);
begin
Bufor.Caption := 'Bufor: ' + IntToStr(TrackBar1.Position * 1024 * 1024 * 1) + ' bajtów';
end;
procedure TForm1.Button7Click(Sender: TObject);
begin
DivFile(Target.Text);
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
Form2.Show;
end;
Unit2:
procedure TForm2.BitBtn3Click(Sender: TObject);
begin
Form2.Hide;
end;
procedure TForm2.DriveComboBox1Change(Sender: TObject);
begin
DriveComboBox1.DirList:= DirectoryListBox1;
end;
procedure TForm2.BitBtn1Click(Sender: TObject);
begin
mkdir('Segmenty');
showmessage('Folder został utworzony!');
DirectoryListBox1.Update;
end;
procedure TForm2.DirectoryListBox1Change(Sender: TObject);
begin
DirPath:= DirectoryListBox1.Directory;
Label2.Caption:= DirPath;
end;
procedure TForm2.BitBtn2Click(Sender: TObject);
begin
DirPath:= DirectoryListBox1.Directory;
DirectoryListBox1.Update;
Form1.Edit1.Text:= DirPath;
Form2.Hide;
end;
end.
Pomozcie.... :-) Co robic? [!!!]