ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Copiar MemoryStream aos poucos para FileStream

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
iDnl
Aprendiz
Aprendiz


Registrado: Domingo, 9 de Junho de 2013
Mensagens: 173

MensagemEnviada: Seg Fev 15, 2016 11:49 pm    Assunto: Copiar MemoryStream aos poucos para FileStream Responder com Citação

Carrego em uma MemoryStream um arquivo de aproximadamente 250KBs, e preciso passar para um FileStream o arquivo todo de 16KBs em 16KBs, e fazer um acompanhamento com uma progressbar, qual o jeito mais simples de fazer isso?

Obrigado
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
strak2012
Colaborador
Colaborador


Registrado: Segunda-Feira, 13 de Janeiro de 2014
Mensagens: 1518
Localização: Maceió - AL

MensagemEnviada: Ter Fev 16, 2016 12:30 am    Assunto: Responder com Citação

Código:
procedure CopyMemoryStreamToFileStream(const MemoryStream: TMemoryStream;
  var FileStream: TFileStream; ProgressBar: TProgressBar);
const
  _16kbs = 1024 * 16;
var
  Blocs, I: integer;
begin
  Blocs := MemoryStream.Size div _16kbs;
  if Blocs * _16kbs < MemoryStream.Size then
    inc(Blocs);
  ProgressBar.Max := Blocs;
  for I := 0 to Blocs-1 do
  begin
    MemoryStream.Position := I * _16kbs;
    FileStream.CopyFrom(MemoryStream, _16kbs);
    ProgressBar.Position := I;
  end;
end;

_________________
Tudo podemos quando tudo sabemos!


Editado pela última vez por strak2012 em Ter Fev 16, 2016 1:44 pm, num total de 1 vez
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
iDnl
Aprendiz
Aprendiz


Registrado: Domingo, 9 de Junho de 2013
Mensagens: 173

MensagemEnviada: Ter Fev 16, 2016 12:42 am    Assunto: Responder com Citação

Obrigado cara, eu estava tendo dificuldades em percorrer, mas agora minhas dúvidas estão claras.

Vlw!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB