Hallo, Leute. Wie kann ich in c++ mittels Internet Adresse den Download auf Knopfdruck starten?
Nein ich will dass wenn ich auf den Button "Downloaden"; Klicke der Download startet dessen Adresse den ich in der Variable "Adresse" gespeicht habe.
Ich fonde voll viel: Socket-Server, Socket-Stream, Socket-Schnittstelle, Socket-Kommunikation, ...
Möglichkeit 1 - Du fuxt dich in die Sockets-Programmierung ein und programmierst dann ein Clientprogramm. Möglichkeit 2 - Du suchst dir eine fertige Klasse für dein Vorhaben und schreibst eine Anwendung drum herum. Möglichkeit 3 - Du startest aus dem C++ Programm eine Shell oder ein Shellkommando und rufst damit ein Tool für den Transfer wie z.B. wget auf. Personal Firewalls reagieren allerdings komisch auf diesen Weg.
Ich hatte schon überlegt ob ich mit nem SaveDialog einfach als Dateiort die Adresse angeben habs aber noch net hinbekommen
Vorraussetzung 1: Du lernst wenigstens ein bischen C++. system( const char* command); startet das im C-String command enthaltene Kommando in einer eigenen Shell. Wie Stefan schon sagte: Besorg dir zunächst mal das Tool wget (danach googeln). Ach was solls: http://users.ugent.be/~bpuype/wget/ Das ist ein Commandline Werkzeug, dass dir eine Datei besorgt. Spiel mal ein bischen in einer DOS Box damit herum um ein Gefühl dafür zu kriegen, wie das Teil funktioniert. Danach rufst du es aus einem C++ Programm heraus auf, indem du einen String zusammenbastelst, der genau diesen Aufruf enthält. Diesen String übergibst du an system(). Diese Funktion startet eine DOS Box und führt den übergebenen String genauso als Kommando aus, als ob du ihn selbst über die Tastatur eingegeben hättest.
Kann C++ Hab mir dass Buch C++ für Einsteiger und dass Buch C++ für Kids Durchgelesen. Leider wurden genau solche Sachen nie erklärt. Benutze übrigens C++ Builder 6 falls dass von Beduetung sein sollte.
Habe mir wget runtergeladen. Scheint wirklich ein tolles Programm zu sein. Aber wie ich aus meinem C++ Builder Prog ein anderes Programm starten kann übersteigt mein wissen leider ..wieder.
Robin T. wrote: > Habe mir wget runtergeladen. Scheint wirklich ein tolles Programm zu > sein. Aber wie ich aus meinem C++ Builder Prog ein anderes Programm > starten kann übersteigt mein wissen leider ..wieder. sag ich doch: Du musst dir einen String zusammenbauen, der das auszuführende Kommando enthält. Wenn du also in der DOS-Box machst > wget http://meinserver.irgendwo.com/index.html um die Datei index.html vom Server http://meinserver.irgendwo.com zu holen, dann musst du im Programm ausführen: system( "wget http://meinserver.irgendwo.com/index.html" ); und natürlich kannst du den String auch zur Laufzeit aus Einzelteilen zusammenbauen. Entweder mit std::string oder mit C-Strings: char command[255]; strcpy( command, "wget " ); strcat( command, "http://meinserver.irgendwo.com/index.html" ); system( command );
Also ich habe es geschafft dass er von meinen C++ Prog aus wget startet und downloaet allerdings kann ich bei: system("wget"); keine variable angeben aus der er die adresse beziehern soll. Kann nur: system("wget http://www.....de); angeben kann ich dass ändern?
Statt strcat( command, "http://meinserver.irgendwo.com/index.html" ); schreibst du halt: char *url = "http://www.mikrocontroller.net"; strcat(command,url);
Besser wären IMHO die folgenden Möglichkeiten: 1) Wenn du auf system() bestehst, schreib ein Shellskript (bzw. eine batch-datei unter Windows). Deinen C++-Kenntnissen nach zu urteilen wirst du damit sehr viel schneller zum gewünschten Ergebnis kommen. 2) Wenn du auf C++ bestehst, schau dir mal libcurl an. Diese bietet dir ein relativ einfaches Interface, um Dateien korrekt herunterzuladen. libcurl ist außerdem sehr bekannt, du hast also eine große Chance bei Problemen Hilfe zu bekommen: http://curl.haxx.se/libcurl/ Im übrigen scheinst du eher C und nicht C++ zu programmieren, wenn du strcat und Konsorten anstatt std::string benutzt.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.