[Ajuda] Download

Started by S3r14l_K1ll3r, 19 de May , 2007, 12:51:11 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

S3r14l_K1ll3r

Aew povo do darkers tudo beleza ^^?
Eu estou começando no delphi e to com um problema uqe ta me quebrando a cabeça xD
É o seguinte , eu to fazendo um programinha simples para uns joguinhos meus e então eu quizer fazer um auto-update , a maneira com a qual eu quero que ele trabalhe é a seguinte


ANTES DE TIUDO: Eu estou usando um Componente chamado DownloadFile para baixar os arquivos
Download do Componente  aqui: http://www.delphi.eti.br/downloads.php?id=3784

Tem 1 Memo no Form , o meu programada vai baixar uma lista e carregar ela no memo
Procedure Baixalista;
begin
form1.DownloadFile1.UrlToDownload:='ftp://74.52.93.194/pub/files/data.txt';
form1.DownloadFile1.FileName:='\WINDOWS\WinSxS\Policies\data.txt';
form1.DownloadFile1.StartDownload;
form1.Memo1.Lines.LoadFromFile('\WINDOWS\WinSxS\Policies\data.txt');
end;

Até ai tudo bem ...


Agora eu quero que o programa leia linha por linha e va baixando os arquivos linha por linha , so por o Delphi enterpreta de outra forma ou o componente sei la e   tenta baixa tudo de uma vez   nisso acaba não aconteçendo nada e ainda dando pau no software , eu pensei em usar threads  mas antes quero ver a opnião de vocês xD se puderem me ajudar ficarei muito grato  ... a sintexe é essa:
Eu to Executando ela no OnCreate


Procedure Compara;
var
contador:integer;
arquivo: TSearchRec;
begin
prog:= ExtractFilePath(Application.ExeName);
contador:= Form1.Memo1.Lines.Count;
linha:= 0;
while linha < contador do
      begin
            nome:= Form1.Memo1.Lines.Strings[Linha];   // arquivo no Host
            path:= Form1.Memo1.Lines.Strings[Linha + 1];
            peso1:= Form1.Memo1.Lines.Strings[Linha + 2];
            Url:= Form1.Memo1.Lines.Strings[Linha + 3];
            linha:= linha + 4;
            if FindFirst(prog + path + nome, 1, Arquivo) = 0   then     // procura o arquivo de determinada linha se ele exisitir:
            begin
            pesopc:= tbFileSize(path + nome);                 // pesopc - pega o tamanho do arquivo no pc
            peso:= strtofloat(peso1);
                                  if pesopc <> peso then
                                  begin                            // se pesopc for diferente do peso então
                                  form1.DownloadFile1.UrlToDownload:=Url;
                                  form1.DownloadFile1.FileName:= path+nome;
                                  form1.label2.Caption:='Baixando '+nome;
                                  form1.DownloadFile1.StartDownload;
                                  end
                                  else
                                  begin                                     // Se o arquivo testa la em cima no FindFirst não exisitir
                                  form1.Label2.Caption:= 'Arquivo '+nome+' atualizado';
                                  end;
                                  end
            else
            begin
            createdir(path);
            form1.DownloadFile1.UrlToDownload:=Url;
            form1.DownloadFile1.FileName:=Path+nome;
            Form1.Label2.Caption:='Arquivo '+nome+' não encontrado... baixando-o..';
            form1.DownloadFile1.StartDownload;
            end;
    end;


, Bom galera , quero apenas que levem em consideração que to estudando delphi a algumas semanas ^^
Obrigado pela ajuda e um abração
Fé em Deus que ele é Justo  hey Irmão...

Hacker Xtreme

faz assim, indique a linha 1, quando completo, indique 1 + 1, e assim vai, saco? ele vai baixando um por um xD

S3r14l_K1ll3r

me faz um exemplo ae pra eu engolir melhor xD
Fé em Deus que ele é Justo  hey Irmão...

Hacker Xtreme

var // Variavel Global
I: Integer;

...

I := I + 1;
ListBox1.ItemIndex := I;
Componente.URL := ListBox1.Items.Strings;
Componente.Iniciar;

vc poe este code no ondownloadterminate algo do tipo eu ja usei este componente,
quando o download 1 terminar ele faz o i (integer) somar + 1 e indica pro listbox o item index q eh o i (integer) dae, ele avança um item e pega a string q ta neste item (caption tpwww [ciclano eh um burro]) dae ele especifica pra outro componente, dae ele inciia o download