Entwickler-Ecke

Internet / Netzwerk - Aus StringGrid downloaden (mit IdHTTP.Get)


G-man - Mi 25.06.03 10:04
Titel: Aus StringGrid downloaden (mit IdHTTP.Get)
Hallo,
ich hatte schon einmal so eine ähnliche Frage gestellt:
wie kann ich mehrere Dateien nacheinander (parallel würde auch gehen)
mit der Indy-Komponente IdHTTP aus einem StringGrid mit einer Spalte aber mehreren Zeilen heraus downloaden?
Ein Codebeispiel wär` nett.


Ex0rzist - Mi 25.06.03 11:49

Hallo,

Schau dir mal die Eigenschaft Cells beim StringGrid an.
Wenn ich dich richtig verstanden haben, stehen in den einzelnen Zeilen die URLs.
Das geht dann zum Beispiel so:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
Procedure TForm1.Download;
var FS: TFileStream;
      i : Integer;
Begin
 For i := 0 To StringGrid1.RowCount-1 do
  begin
   FS := TFileStream.Create('Datei', fmCreate); //den Dateinamen musst du dir aus dem URL herausfiltern.
   idHTTP1.Get(StringGrid1.Cells[0,i],FS);
   FS.Free;
   Application.ProcessMessages;
  end;
end;


G-man - Mo 21.07.03 15:18

Das mit dem Dateinahme ist glaube ich mein Problem. Das mit dem Download etc. habe ich so gelöst

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
function http_get(slabel: TLabel; httpgo: TIDhttp; sGrid: TStringGrid): boolean;
var
source, destination: string;
FStream: TFileStream;
i : Integer;
begin
 for i:=0 to sGrid.RowCount-1 do
  begin
    source:=sGrid.Cells[0,i];
    if strRScan (Pchar(source), '/')<> nil then
    destination := strRScan (Pchar(source), '/');
    destination:= slabel.Caption +destination;
    FStream:= TFileStream.Create (destination, FmCreate);
    httpgo.Get(source, FStream);
    FStream.Free;
    Application.ProcessMessages;
  end;
end;

Aber es funzt net... Weiß jemand Rat???


G-man - Do 24.07.03 12:48

Ach ja, das Label gibt das Laufwerk und den Ordner an, in das die Datei reingeschrieben wird.