Autor Beitrag
stigge
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 426

WinXP
Delphi 2007
BeitragVerfasst: Do 21.06.07 13:59 
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:
ausblenden 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); //Hier gehts ans Speichern
  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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 275

WinXP
BDS 2006
BeitragVerfasst: 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

_________________
erare humanum est
stigge Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 426

WinXP
Delphi 2007
BeitragVerfasst: Do 21.06.07 15:11 
ausblenden Delphi-Quelltext
1:
streamen.Create;					

[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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 378

Win XP/Vista, Debian, (K)Ubuntu
Delphi 5 Prof, Delphi 7 Prof, C# (#Develop, VS 2005), Java (Eclipse), C++, QT, PHP, Python
BeitragVerfasst: Do 21.06.07 17:12 
Anstatt
user profile iconstigge hat folgendes geschrieben:
ausblenden Delphi-Quelltext
1:
streamen.Create;					



solltest du
ausblenden Delphi-Quelltext
1:
streamen := TFileStream.Create('C:\pfad\Dateiname.txt',fmCreate);					


verwenden.
stigge Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 426

WinXP
Delphi 2007
BeitragVerfasst: Do 21.06.07 18:26 
user profile iconarj hat folgendes geschrieben:

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 275

WinXP
BDS 2006
BeitragVerfasst: Do 21.06.07 18:40 
user profile iconstigge hat folgendes geschrieben:
user profile iconarj hat folgendes geschrieben:

ausblenden 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 ;)

_________________
erare humanum est
stigge Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 426

WinXP
Delphi 2007
BeitragVerfasst: Do 21.06.07 18:46 
user profile iconRobinator hat folgendes geschrieben:
entweder du packst das ganze in nen eigenen Thread oder du verwendest TidAntiFreeze, Das bringt zumindest nen bischen was ;)

OK, Danke!