Autor Beitrag
c#noob
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Fr 03.02.12 13:13 
Hallo ich habe ein kleines Programm geschrieben durch hilfe auch von anderen.

Leider bin ich auf ein Problem gestoßen,

ich möchte gerne eine Bilddatei in einer Picturebox ausgeben.Die Bilddateien sind auf einen http webspace.

Das rohe Programm läuft wenn ich 1 Bild als festen Wert vorgebe.

Ich möchte aber das der http pfad fest ist und dann durch den datei namen in einer textbox hinzugefügt wird und dann das Bild geladen wird.

Als Beispiel:
ausblenden Quelltext
1:
http://festerserver/+texteingabe+.jpg					

dann der Aufruf für die Picturebox.Lokal habe ich das hin bekommen durch Hilfe aber der Weg wie Lokal funktioniert leider nicht.

Anbei mein Code
ausblenden C#-Quelltext
1:
2:
3:
4:
WebRequest req = WebRequest.Create("http://server/{0}.jpg", textBox2.Text);
Stream stream = req.GetResponse().GetResponseStream();
Image img = Image.FromStream(stream);
this.pictureBox1.Image = img;


Danke

Moderiert von user profile iconTh69: C#-Tags hinzugefügt
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4798
Erhaltene Danke: 1059

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Fr 03.02.12 13:28 
Hallo und :welcome:

benutze zum Zusammenbauen des Pfades String.Format bzw. Path.Combine.
Und speziell für Internet-Adressen gibt es die Uri-Klasse.

Und den so zusammengestellten Pfad übergibst du dann der WebRequest.Create()-Methode.
c#noob Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Fr 03.02.12 13:36 
danke für deine netten grüße.

ok also muss ich wie lokal einen pfad zusammen bauen mit string format.

Code:

ausblenden Quelltext
1:
2:
3:
4:
5:
       string Path2 = string.Format("http://Server/{0}.jpg", textBox2.Text);
       WebRequest req = WebRequest.Create("Path2");
       Stream stream = req.GetResponse().GetResponseStream();
       Image img = Image.FromStream(stream);
       this.pictureBox1.Image = img;


Plus das ich für die Serveradresse einen uri pfad angabe machen muss?
das mit dem uri da steige ich überhaupt noch nicht durch

so das im endeffekt es dann so (logisch) aussehen muss:?


ausblenden Quelltext
1:
2:
3:
4:
5:
6:
    
       string Path2 = string.Format("uripfad/{0}.jpg", textBox2.Text);
       WebRequest req = WebRequest.Create("Path2");
       Stream stream = req.GetResponse().GetResponseStream();
       Image img = Image.FromStream(stream);
       this.pictureBox1.Image = img;
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4798
Erhaltene Danke: 1059

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Fr 03.02.12 13:49 
Hallo,

dein erster Ansatz ist richtig, nur daß du natürlich dann den Pfad als Variable übergeben mußt, d.h.
ausblenden C#-Quelltext
1:
2:
string path = string.Format("http://Server/{0}.jpg", textBox2.Text);
WebRequest req = WebRequest.Create(path);

Die Uri-Klasse ist dann nützlich, wenn du verschiedene Darstellungen bzw. Teile daraus benötigst (scheint bei dir aber z.Z. nicht der Fall zu sein, da der Server ja anscheinend fest ist).

P.S. nur als Hinweis für andere Leser: Crosspost, s. www.c-plusplus.de/forum/p2176026#2176026
c#noob Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Fr 03.02.12 13:57 
erledigt ,hat jetzt geklappt


Vielen Dank th69!!!!!
c#noob Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Fr 03.02.12 14:28 
Ach Programmieren :)


so nun klappt alles so wie ich es möchte, aber ich hab einen Fehler gemacht.Ich habe nicht daran gedacht wenn die Datei nicht da ist.
Dann stürzt das Programm ab.

Wie fange ich das am besten ab.

Hab mir das Beispiel vom lokalen dafür wieder angeschaut, da wurde es mit einer if, else schleife abgefangen.

Logisch stellt es für mich wieder so da:

öffne den webrequest
schaue nach der datei
öffne sie

nun müsste aus meiener sicht vor den öffnen die schleife rein

if ist die Datei vorhanden, dann zeige sie an
else gebe eine messagebox datei nicht vorhanden

ist das richtig so?
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4798
Erhaltene Danke: 1059

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Fr 03.02.12 14:35 
Hallo nocheinmal,

ich denke, da wird dann wohl eine Exception geworfen und diese müßtest du dann mittels try...catch abfangen.
c#noob Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Fr 03.02.12 14:42 
mein gott, :)

schaue ich mir aber gleich mal an


Und dank deines Tips (wieder einmal) habe ich es hinbekommen.


*gibt*th69*ein*bier*aus*

DANKE