Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Mehrere Dateien per http herunterladen (https://www.delphipraxis.net/80618-mehrere-dateien-per-http-herunterladen.html)

Dragon27 12. Nov 2006 16:32


Mehrere Dateien per http herunterladen
 
hallo alle zusammen,

ich habe eine Frage, ich würde gerne mehrere Dateien von einem HTTP Ziel herunterladen. Also eine ganze Liste. Mit was mach ich das am besten?
Ich hab mir schon die Indy´s angeschaut aber da ich die 10er habe kenne ich mich gar nicht damit aus. Auch ein fortschrittsbalken sollte möglich sein.

Danke für die Hilfe!

Andreas L. 12. Nov 2006 16:35

Re: Mehrere Dateien per http herunterladen
 
http://www.delphipraxis.net/internal_redirect.php?t=75
http://www.delphipraxis.net/internal...ct.php?t=61806

Die Forensuche bzw. ein Blick in die CodeLib hätte dir auch geholfen.

Dragon27 12. Nov 2006 16:42

Re: Mehrere Dateien per http herunterladen
 
Hallo,

danke für die schnelle Antwort! Meine Frage ist nur wenn ich diesen Tipp: http://www.delphipraxis.net/internal_redirect.php?t=75 anwende, kann ich dass dann ein einer Schleife mit mehreren Dateien machen?
Denn ich hab das mit der einfachen API versucht und da bekomme ich eine Zugriffsverletzung.


Danke!

Dragon27 12. Nov 2006 17:42

Re: Mehrere Dateien per http herunterladen
 
Hallo nochmal,

also hier der Code den ich jetzt habe:

Delphi-Quellcode:
var
  Form1: TForm1;
  Dateien:tstringlist;

implementation

{$R *.dfm}


function Tform1.Aktuell(Current:integer):Boolean;
var
  Datei,Ziel:PChar;
  ini:Tinifile;
  stat:Integer;
begin
  Label2.Caption := 'Verifiziere...';
  try
    Datei := 'http://www.xyz.de/Updates/Update.ini';
    Ziel := 'C:\Windows\temp\Update.ini';
    UrlDownloadToFile(nil, Datei, Ziel, 0, nil);
  except
  end;

  ini:=Tinifile.Create('C:\Windows\temp\Update.ini');
  stat:=ini.Readinteger('Version','Number',0);
  ini.free;

  if stat>current then Result:=false else Result:=true;
end;


Procedure Updatehandler(FDatei:String);
var Dat:Tstringlist;
i:integer;
Datei,Ziel:PChar;

begin
dat:=Tstringlist.Create;
dat.LoadFromFile(FDatei);
I:=0;
while dat.count>=i+1 do begin

  if uppercase(dat[i])=uppercase('Script') then begin
    inc(i);
    Datei := PAnsiChar('http://www.xyz.de/Updates/'+dat[i]);
    Ziel := PAnsiChar(ExtractFilePath(ParamStr(0))+'\Scripte\'+dat[i]);
  end;

  if uppercase(dat[i])=uppercase('EXE') then begin
    inc(i);
    Datei := PAnsiChar('http://www.xyz.de/Updates/'+dat[i]);
     Ziel := PAnsiChar(ExtractFilePath(ParamStr(0))+'\'+dat[i]);
  end;

inc(i);
end;

end;

procedure TForm1.Button1Click(Sender: TObject);
var ini:Tinifile;
aktuelleVersion,i,jetzt:integer;
Datei,Ziel:PChar;
begin
ini:=Tinifile.Create(ExtractFilePath(ParamStr(0))+'\Update\Version.ini');
jetzt:=ini.ReadInteger('Data','Version',1);
if aktuell(jetzt)=false then begin
  ini.free;
  ini:=Tinifile.Create('C:\Windows\temp\Update.ini');
  aktuelleversion:=ini.Readinteger('Version','Number',0);
  ini.free;



    for i:=Jetzt+1 to aktuelleversion do begin
      try
       Datei := PAnsiChar('http://www.xyz.de/Updates/'+inttostr(i)+'.upd');
       Ziel := PAnsiChar(ExtractFilePath(ParamStr(0))+'\Update\'+inttostr(i)+'.upd');
        UrlDownloadToFile(nil, Datei, Ziel, 0, nil);
     except
      Listbox1.Items.Add('Fehler beim Downloaden der Updates!');
      end;

    end;


    for i:=Jetzt+1 to aktuelleversion do begin

     Updatehandler(ExtractFilePath(ParamStr(0))+'\Update\'+inttostr(i)+'.upd');

    end;

end;

ini.Free;
end;

end.
Bei diesem Code bekomme ich eine Zugriffsverletzung! Ich weiß nicht mehr weiter :-(


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:19 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz