Показать сообщение отдельно
  #3  
Старый 22.06.2009, 21:48
Аватар для Agito
Agito Agito вне форума
Прохожий
 
Регистрация: 22.06.2009
Сообщения: 11
Репутация: 10
По умолчанию

Так, циклов нету, событие Ресив проихсдоит просто часто. Вот один исходник:

Код:
var
  l: Integer;
  buf: PChar;
  src: TFileStream;
  pat: string;
begin
  pat:='hz.rar';
  l:= Socket.ReceiveLength;
  GetMem(buf,l+1);
  Socket.ReceiveBuf(buf[0],l);
  if fileexists(pat) then src:= TFileStream.Create(pat, fmopenreadwrite) else src:= TFileStream.Create(pat, fmCreate);
  src.Seek(0,soFromEnd);
  src.WriteBuffer(buf[0],l);
  src.Free;   
  FreeMem(buf);
end;

Есть второй вариант, там идет работа с TMemoryStream - работает лучше, тормозит только на сохранение файла, но данный вариант меня не устраивает.
Ответить с цитированием