Entwickler-Ecke
Internet / Netzwerk - Datei aus dem Internet streamen
stigge - Do 21.06.07 13:59
Titel: Datei aus dem Internet streamen
Hallo,
ich schicke Daten per idhttp.post an eine Webseite und bekomme als Antwort eine Datei. Diese möchte ich jetzt per Stream auf der Festplatte speichern. Wie mache ich das? Mein bisheriger Code:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28:
| var art: tstringlist; streamen: TFileStream;
...
try art := TStringList.Create; streamen.Create(handle); with art do begin Values['irgendwas'] := irgendwas; Values['irgendwas'] := irgendwas; end; try stream.speichern????? := IdHTTP1.Post('webseite', art); except on E: Exception do begin showmessage('Es kann keine Verbindung zum Server aufgebaut werden'); exit; end; end; finally art.Free; streamen.free; end; |
Wäre dankbar über Hilfe,
Stigge
Robinator - Do 21.06.07 14:51
Ohoh, da sind aber ne menge Fehler drin ;)
1. Rück deinen code vernünftig ein!
2. Wie du Objekte erstellst scheinst du ja zu wissen (siehe StringList)... genauso geht da beim FileStream auch
3. Du musst den Stream als dritten Parameter im Post befehl angeben.
4. Dann sollte es gehen :=)
gruss, ROb
stigge - Do 21.06.07 15:11
[DCC Fehler] Unit1.pas(130): E2250 Es gibt keine überladene Version von 'Create', die man mit diesen Argumenten aufrufen kann
Und wo muss ich überhaupt eintragen, wo die Datei gespeichert werden soll?
arj - Do 21.06.07 17:12
Anstatt
stigge hat folgendes geschrieben: |
|
solltest du
Delphi-Quelltext
1:
| streamen := TFileStream.Create('C:\pfad\Dateiname.txt',fmCreate); |
verwenden.
stigge - Do 21.06.07 18:26
arj hat folgendes geschrieben: |
Delphi-Quelltext 1:
| streamen := TFileStream.Create('C:\pfad\Dateiname.txt',fmCreate); | |
Damit funktioniert's, Danke!
Aber während er downloadet reagiert das Programm nicht mehr.
Kann man das irgendwie unterbinden?
JayEff - Do 21.06.07 18:36
Den on E:Exception do begin end; Block brauchst du nicht, wenn du sowieso nicht auf das E-Objekt zugreifst. Lass das alles weg und schreib nur try-except *Fehlerbehandlung* end;
Robinator - Do 21.06.07 18:40
stigge hat folgendes geschrieben: |
arj hat folgendes geschrieben: |
Delphi-Quelltext 1:
| streamen := TFileStream.Create('C:\pfad\Dateiname.txt',fmCreate); | |
Damit funktioniert's, Danke!
Aber während er downloadet reagiert das Programm nicht mehr.
Kann man das irgendwie unterbinden? |
entweder du packst das ganze in nen eigenen Thread oder du verwendest TidAntiFreeze, Das bringt zumindest nen bischen was ;)
stigge - Do 21.06.07 18:46
Robinator hat folgendes geschrieben: |
| entweder du packst das ganze in nen eigenen Thread oder du verwendest TidAntiFreeze, Das bringt zumindest nen bischen was ;) |
OK, Danke!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!