Показать сообщение отдельно
  #2  
Старый 04.02.2018, 08:28
Аватар для dr. F.I.N.
dr. F.I.N. dr. F.I.N. вне форума
I Like it!
 
Регистрация: 12.12.2009
Адрес: Россия, г. Новосибирск
Сообщения: 663
Версия Delphi: D6/D7
Репутация: 26643
По умолчанию

Код:
uses
  Math;

procedure CutFile(FileName: string; Parts: Integer);
var
  Src, Trg: TFileStream;
  PartSize: Int64;
  i: Integer;
begin
  Src := TFileStream.Create(FileName, fmOpenRead);
  try
    if Parts <= Src.Size then
    begin
      PartSize := Ceil(Src.Size / Parts);
      for i := 1 to Parts do
      begin
        Trg := TFileStream.Create(FileName + '.part' + IntToStr(i), fmCreate);
        try
          if Src.Size - Src.Position < PartSize then
            PartSize := Src.Size - Src.Position;
          Trg.CopyFrom(Src, PartSize);
        finally
          Trg.Free;
        end;
      end;
    end;
  finally
    Src.Free;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  if OpenDialog1.Execute then
  begin
    CutFile(OpenDialog1.FileName, 10);
    ShowMessage('Done');
  end;
end;
__________________
Грамотно поставленный вопрос содержит не менее 50% ответа.
Грамотно поставленная речь вызывает уважение, а у некоторых даже зависть.
Ответить с цитированием