gienek Napisano Styczeń 26, 2012 Zgłoś Share Napisano Styczeń 26, 2012 Cześć. Mam dwie string listy. Jedna zawiera linki plików do pobrania, druga nazwy plików. Chcę pobrać owe pliki w jednej pętli, wyświetlając postęp za każdym razem. Pętla jest już przygotowana: for d:=0 to liczba_pobran-1 do begin {kod do pobrania plików} end; liczba_pobran - liczba wpisów w tstring list. W jaki sposób, tj. czym pobrać pliki? HTTPGet jest dla mnie idealny - z miejsca działa progressbar. Tyle że każde pobieranie jest w osobnym wątku. Teraz mam 4 pliki, ale mogę mieć 20 albo i 100. Nie wiem jak dynamicznie tworzyć te komponenty, to pewnie rozwiązałoby problem. Próbowałem idHTTP - zawiesza formę. Próbowałem URLDownloadtoFile - też zawiesza formę. W jaki sposób to rozwiązać? Zajrzałem do Kompendium programisty i znalazłem przykład pobierania za pomocą WinInet. Chyba działa Link do komentarza Udostępnij na innych stronach More sharing options...
olesio Napisano Styczeń 27, 2012 Zgłoś Share Napisano Styczeń 27, 2012 Do pobierania polecam Synapse: http://4programmers....pakietu_Synapse albo SimpleTCP jeżeli chcesz mieć większą kontrolę, ale obsługę protokołu musisz sobie wtedy napisać samodzielnie, bo na stronie jest tylko krótki przykład pobrania samej strony google w formie tekstu: http://piechnat.pl/a.../simpletcp.html a w ogóle polecam do pobierania użyć jednej TStringListy, w jej itemach dodajesz linki, robisz to przez SL.AddObject('http://link.jakis.net', ObjLink); gdzie jako ObjLink to TObjLink który będzie typem jaki polecam sobie stworzyć i ten typ będzie przechowywał poza linkiem nazwę pliku i inne w swoich polach. W ten sposób lista może trzymać dodatkowe informacje, no chyba, że da się nazwę pliku wyodrębnić z linku takim prostym kodem (kopiuje tekst po ostatnim "/") function ExtractFileNameFromLink(Link : string) : string; var I : integer; begin for I := Length(Link) downto 1 do begin if Copy(Link, I, 1) = '/' then begin Delete(Link, 1, I); end; Result := Link; end; end; Pozdrawiam: olesio Link do komentarza Udostępnij na innych stronach More sharing options...
Polecane posty
Zarchiwizowany
Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.