Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   
Forentreff 2012     
Bücher-Shop mit Amazon (Buchkategorien)C++ : Referenzen zu C++ : C++ Builder : Visual C++ : C# : Java : Spieleprogrammierung : Systemprogrammierung Linux : Software-Entwicklung : .NET : Compilertechnik : Algorithmen & Datenstrukturen : Objektorientierung : Entwurfsmuster : UML : eXtreme Programming : Scrum : Projektmanagement : Software-Testing : Datenbanken : Tom DeMarco : Dilbert : User Friendly
C/C++ Forum :: C# und .NET ::  Bildabfrage Programm     Zeige alle Beiträge auf einer Seite Auf Beitrag antworten
Autor Nachricht
felix1615
Mitglied

Benutzerprofil
Anmeldungsdatum: 31.01.2012
Beiträge: 10
Beitrag felix1615 Mitglied 15:17:58 31.01.2012   Titel:   Bildabfrage Programm            Zitieren

Hallo ich bin Felix und hoffe hier ein paar Tipps und Anregungen zu bekommen um mein Projekt zu verwirklichen,


also ich habe folgendes Projekt.

eine Windows app die meine Bilder anzeigt (erstmals lokale Bilder, später die von meinem Webserver)


Bilder lokal anzeigen klappt soweit nur möchte ich das mein Suchfeld nicht mehr mit ganzen Pfad eingetippt werden muss.


als Beispiel:

in meinem Suchfeld muss ich eintippen c:\Testbild.jpg

ich möchte aber das 1. der Pfad fest vorgegeben wird (c:\Bilder zb in dem Fall bei lokal, später dann der webspace] und 2. dann der dateiendungsname rangehängt wird so das man in das Suchfeld nur noch in dem Fall Testbild eintippt.

wie müsste ich am besten vorgehen?

könnte es mir vorstellen das ich zb feste werte hinzufüge beim öffnen der Datei zb text aus textbox1+.jpg. oder denke ich da komplett falsch.

Ich hoffe jemand kann mir helfen oder einen Denkanstoß geben.

Vielen Dank erstmal

Liebe Grüße

Felix
Th69
Mitglied

Benutzerprofil
Anmeldungsdatum: 25.03.2008
Beiträge: 2256
Beitrag Th69 Mitglied 15:31:18 31.01.2012   Titel:              Zitieren

Hallo Felix,

mit der Path.Combine()-Methode kannst du einfach Pfade (bzw. Pfad + Dateinamen) zusammensetzen.
Und den Pfad kannst du dir selbstverständlich aus verschiedensten Quellen holen, z.B. fest einprogrammiert, per TextBox, aus einer Konfigurationsdatei, relativ zum Progamm (Application.StartupPath)...
felix1615
Mitglied

Benutzerprofil
Anmeldungsdatum: 31.01.2012
Beiträge: 10
Beitrag felix1615 Mitglied 15:34:11 31.01.2012   Titel:              Zitieren

danke erstmal für die schnelle antwort, ich schau mir sofort die infos über den befehl an .


Danke
felix1615
Mitglied

Benutzerprofil
Anmeldungsdatum: 31.01.2012
Beiträge: 10
Beitrag felix1615 Mitglied 15:42:18 31.01.2012   Titel:              Zitieren

so habe mir das jetzt angeschaut, wäre genau das was ich möchte.

jetzt meine frage wie binde ich dann die beiden string pfade mit meiner abfrage ein.


ich muss ja zuerst die beiden string pfade (zum kombinieren erstellen) richtig?

also

string path1 = "c:\\Bilder";
string path2 = ".jpg";

CombinePaths(path1, path2);


wie füge ich das dann bei meiner Textboxanfrage ein?

ist das dann path1-textboxanfrage-path2??
Patrickssj6
Mitglied

Benutzerprofil
Anmeldungsdatum: 08.01.2012
Beiträge: 87
Beitrag Patrickssj6 Mitglied 15:57:40 31.01.2012   Titel:              Zitieren

C/C++ Code:
string path1 = "c:\\Bilder";
string path2 = textboxanfrage.Text + ".jpg";
C/C++ Code:
string path1 = "c:\\Bilder";
string path2 = textboxanfrage.Text + ".jpg";
C/C++ Code:
string path1 = "c:\\Bilder";
string path2 = textboxanfrage.Text + ".jpg";


Du könntest es noch eleganter Lösen mit

(hier fehlt noch das combine path)
C/C++ Code:
string Path = string.Format("c:\\Bilder\\{0}.jpg",textboxanfrage.Text);
C/C++ Code:
string Path = string.Format("c:\\Bilder\\{0}.jpg",textboxanfrage.Text);
C/C++ Code:
string Path = string.Format("c:\\Bilder\\{0}.jpg",textboxanfrage.Text);


Zuletzt bearbeitet von Patrickssj6 am 15:58:57 31.01.2012, insgesamt 1-mal bearbeitet
felix1615
Mitglied

Benutzerprofil
Anmeldungsdatum: 31.01.2012
Beiträge: 10
Beitrag felix1615 Mitglied 16:28:42 31.01.2012   Titel:              Zitieren

ok danke für die weiteren Erklärungen.

ich glaub den kern von dem Befehl habe ich verstanden, aber ich setzte ihn wohl noch falsch ein.


string Path = string.Format("c:\\Bilder\\{0}.jpg", textBox1.Text);



if (textBox1.Text != String.Empty)
{

//existiert die Datei überhaupt?

if (System.IO.File.Exists(textBox1.Text)

//wenn ja, dann laden und anzeigen

pictureBox1.Load(textBox1.Text);

else
MessageBox.Show("Das Bild gibt es nicht");
}
}


Durch deinen Befehl wird die Die Texteingabe in die mitte genommen und die beiden path dazuaddiert, richtig?
Th69
Mitglied

Benutzerprofil
Anmeldungsdatum: 25.03.2008
Beiträge: 2256
Beitrag Th69 Mitglied 17:21:17 31.01.2012   Titel:              Zitieren

// delete


Zuletzt bearbeitet von Th69 am 17:23:29 31.01.2012, insgesamt 1-mal bearbeitet
Th69
Mitglied

Benutzerprofil
Anmeldungsdatum: 25.03.2008
Beiträge: 2256
Beitrag Th69 Mitglied 17:22:37 31.01.2012   Titel:              Zitieren

Hallo Felix,

du mußt natürlich auch die Stringvariable 'path' benutzen (anstatt textBox1.Text) ;-)

P.S. Verwende bitte die CS-Tags hier im Forum für den Code.


Zuletzt bearbeitet von Th69 am 17:24:25 31.01.2012, insgesamt 1-mal bearbeitet
felix1615
Mitglied

Benutzerprofil
Anmeldungsdatum: 31.01.2012
Beiträge: 10
Beitrag felix1615 Mitglied 17:38:11 31.01.2012   Titel:              Zitieren

ich Depp , natürlich hast ja vollkommen recht, so klappt es dann auch!!

vielen dank damit habe ich schon mal den 1 teil geschafft und werde daran jetzt erst mal rumspielen und mir das einprägen.

Mit den CS code werde ich in Zukunft machen danke für den Tip.


Im 2 teil schau das ich das auch von einem webspace laden kann, reicht das da nur den pfad in dem string zu ändern auf den webspace oder soll ich mir da eventuell noch einen anderen Befehl anschauen.

Vielen Lieben dank

felix
Patrickssj6
Mitglied

Benutzerprofil
Anmeldungsdatum: 08.01.2012
Beiträge: 87
Beitrag Patrickssj6 Mitglied 17:46:55 31.01.2012   Titel:              Zitieren

felix1615 schrieb:
ich Depp , natürlich hast ja vollkommen recht, so klappt es dann auch!!

vielen dank damit habe ich schon mal den 1 teil geschafft und werde daran jetzt erst mal rumspielen und mir das einprägen.

Mit den CS code werde ich in Zukunft machen danke für den Tip.


Im 2 teil schau das ich das auch von einem webspace laden kann, reicht das da nur den pfad in dem string zu ändern auf den webspace oder soll ich mir da eventuell noch einen anderen Befehl anschauen.

Vielen Lieben dank

felix


Nur so für die Zukunft: Du kannst bei string.Format auch mehrere strings einfügen e.g. string.Format("{0}{1}{2}",1,2,3...);

Wenn du eine Datei von nem Webspace willst kannst du Datei entweder direkt über HTTP oder FTP runter laden und die dann wie gehabt öffnen. Google einfach "download file C#".
Th69
Mitglied

Benutzerprofil
Anmeldungsdatum: 25.03.2008
Beiträge: 2256
Beitrag Th69 Mitglied 17:57:00 31.01.2012   Titel:              Zitieren

Da ich heute die Frage schon mal beantwortet habe, hier nur der Link: Bild vom Server lokal speichern (gilt für beliebige Dateien, nicht nur für Bilder ;-)
felix1615
Mitglied

Benutzerprofil
Anmeldungsdatum: 31.01.2012
Beiträge: 10
Beitrag felix1615 Mitglied 17:58:40 31.01.2012   Titel:              Zitieren

ich würde halt gerne das dort die Daten liegen in dem falle die Bilder und ich sie nicht lokal erst laden muss, wenn das aber nicht gehen würde, wäre mein anderer Gedankengang das ich das mit dem Befehl wie du sagtest Runterlade (die ganzen Bild datein) und dann weiterhin so öffne.

was empfehlen mir da die Profis?

kann man mit dem befehl auch verhindern das er datein nochmal lädt die schon da sind?

schau mir den befehl gleich mal an
felix1615
Mitglied

Benutzerprofil
Anmeldungsdatum: 31.01.2012
Beiträge: 10
Beitrag felix1615 Mitglied 20:31:49 31.01.2012   Titel:              Zitieren

th69 habe mir deinen Link angeschaut, das klappt auch gut, Problem ist bloß das ich nur eine Datei dann lade??

ich möchte alle Dateien (alles jpg Dateien) laden.So müsste ich ja immer den Namen angeben.bei den Vielen Bilder wäre das aber Zeitaufwendig.

Im Endeffekt soll er so wie du es mir mit deinem Link aufgezeigt hast auch funktionieren bloß das er alle *.jpg Datein lokal abspeichert.
felix1615
Mitglied

Benutzerprofil
Anmeldungsdatum: 31.01.2012
Beiträge: 10
Beitrag felix1615 Mitglied 13:07:21 01.02.2012   Titel:              Zitieren

So habe jetzt mal weiter an meinem Programm gebastelt, und mir die ganzen Links dir ihr mir lieberweise geschickt habt durchgelesen.

mir stellen sich jetzt zwei fragen.

mit den download geht immer nur eine datei, und die Bilder möchte ich doch nicht immer erst lokal laden und dann erst aufrufen.

habe mir jetzt gedacht das ich vlt meinen webspace als netzwerklaufwerk einbinden könnte, so müsste es doch dann auch dort aufgerufen werden können ohne erst die dateien immer erst lokal laden zu müssen?? habe ich da einen denkfehler oder könnte man das dann wirklich so umsetzten?

Liebe grüße felix
Th69
Mitglied

Benutzerprofil
Anmeldungsdatum: 25.03.2008
Beiträge: 2256
Beitrag Th69 Mitglied 13:46:15 01.02.2012   Titel:              Zitieren

Hallo Felix,

du willst doch die Bilder bei dir lokal anzeigen, oder?
Also mußt du sie auch runterladen ;-)

Du brauchst aber natürlich nicht die Bilder bei dir lokal abzuspeichern, sondern kannst sie direkt aus dem Byte-Array heraus anzeigen.

Dazu dann einen MemoryStream benutzen und daraus dann eine Bitmap erzeugen...

Wenn du direkt an die Dateien über's Netzwerk herankommst (anstatt über HTTP), dann kannst du natürlich die Directory.GetFiles()-Methode benutzen, um alle Dateien (bzw. gefiltert, z.B. "*.jpg") zu erhalten.
felix1615
Mitglied

Benutzerprofil
Anmeldungsdatum: 31.01.2012
Beiträge: 10
Beitrag felix1615 Mitglied 13:51:49 01.02.2012   Titel:              Zitieren

:) da hast du natürlich recht laden muss ich sie sowieso auch wenn es nur temp ist.

also ich habe vollen zugang auf den server.

jetzt wäre da deine Meinung gefragt was am sinnvollsten ist.


das Endprodukt soll sein das er die Datei(Bild) auf dem Server sucht (durch die nette hilfe mit den string path geht es lokal super) und dann lokal anzeigt bis die nächste anfrage kommt.

was macht da jetzt am besten Sinn?


P.S.: es soll dann wirklich immer nur das eine Bild angezeigt werden wovon ich den namen eintippe


Zuletzt bearbeitet von felix1615 am 15:07:28 01.02.2012, insgesamt 1-mal bearbeitet
felix1615
Mitglied

Benutzerprofil
Anmeldungsdatum: 31.01.2012
Beiträge: 10
Beitrag felix1615 Mitglied 15:41:12 02.02.2012   Titel:              Zitieren

Habe es jetzt geschafft direkt vom webspace das Bild anzeigen zu lassen, ohne das er es speichert (danke nochmal da für den Tip) er nimmt da aber wieder nur den ganzen Pfad.Wenn ich es dann probiere über den String wieder ein Kombination zu machen bricht er ab wegen einen URI Fehler.


Code:
       WebRequest req = WebRequest.Create("http://ip/{0}.jpg", textBox2.Text);
       Stream stream = req.GetResponse().GetResponseStream();
       Image img = Image.FromStream(stream);
       this.pictureBox1.Image = img;
   }
Code:
WebRequest req = WebRequest.Create("http://ip/{0}.jpg", textBox2.Text);
Stream stream = req.GetResponse().GetResponseStream();
Image img = Image.FromStream(stream);
this.pictureBox1.Image = img;
}
Code:
       WebRequest req = WebRequest.Create("http://ip/{0}.jpg", textBox2.Text);
       Stream stream = req.GetResponse().GetResponseStream();
       Image img = Image.FromStream(stream);
       this.pictureBox1.Image = img;
   }


geht da die Methode nicht wie bei der lokalen Kombinationsabfrage?

Liebe Grüße

Felix
Th69
Mitglied

Benutzerprofil
Anmeldungsdatum: 25.03.2008
Beiträge: 2256
Beitrag Th69 Mitglied 13:43:51 03.02.2012   Titel:              Zitieren

Frage beantwortet unter http://www.c-sharp-forum.de/viewtopic.php?t=108422
C/C++ Forum :: C# und .NET ::  Bildabfrage Programm   Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info, www.c-sar.de, www.c-plusplus.net und www.baeckmann.de enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.