Показать сообщение отдельно
  #5  
Старый 05.05.2015, 05:52
Аватар для Помидоркин
Помидоркин Помидоркин вне форума
Начинающий
 
Регистрация: 07.10.2012
Адрес: Дедовск
Сообщения: 110
Версия Delphi: Rio 10.3
Репутация: 10
По умолчанию

Цитата:
Сообщение от lmikle
1. А что мешает завести еще один поток, который будет заниматься этим? Один на все скачки, если их много.
ну так-то - да Кстати, у меня подозрение, что таймер как раз и работает в отдельном потоке, с другой стороны кажется - это плохой вариант, правда пока не пойму почему.
Цитата:
Сообщение от lmikle
...размер всего файла. Соответственно, можешь аллоцировать место (записать нули в TFileStream в нужном кол-ве).
Вот это вот -
Код:
 fs.Size:={.Response.ContentLength};
это то что нужно? или требуются еще какие то телодвижения?
Цитата:
Сообщение от lmikle
часть файла, скачанная в TMemoryStream - ты всегда знаешь с какой позиции надо писать, а длинна - размер TMemoryStream.
Я вроде так и сделал
Код:
 CntLock.Enter;
 Strim.Position:=S; 
 Strim.CopyFrom(Buf,Buf.Size); 
 CntLock.Leave;

Все-таки смущает:
Код:
type
    TDLoad = class(TThread)
    private
     Strim: TFileStream;
  ..............................
Код:
procedure TForm1.Button2Click(Sender: TObject);
...................
begin
 fs:= TFileStream.Create('D:\cashe\001.mp4',fmCreate);
...................
 for i:= 0 to {кол-во частей} do
 begin
  dl:= TDLoad.Create(True);
.....................
  dl.Strim:= fs;.
 end;
end;
Ответить с цитированием