Programmieren - alles kontrollieren 4.941 Themen, 20.715 Beiträge

Datei downloaden und uploaden mit C++

W.Stecher / 9 Antworten / Baumansicht Nickles

Hallo,


ich hoffe dieser Thread ist nicht zu unverschämt, aber ich möchte gerne ein kleines Programm schreiben und zur Zeit scheitert es daran, das ich eine Textdatei (*.txt) von einem Server runterladen möchte und in einem bestimmten Verzeichnis auf meiner Festplatte abspeichern möchte. Ich habe keine Ahnung wie ich das bewerkstelligen soll.


Das einlesen und verändern der Datei ist mir klar.

Später möchte ich dann diese Datei wieder hochladen.

Eingentlich müsste doch der Download sowie der Uplaod mit einigen wenigen Zeilen Quellcode zu bewerkstelligen sein, oder ? Aber ich kenne dafür keinerlei Befehle.

Da ich denn Quellcode selber nicht schreiben kann, ist mir auch nicht klar, in wie weit ich ein LogIn in den Quellcode einbauen muß. Die Dateien sind zwar auf dem Server öffentlich zugänglich, aber für den Upload denke ich mir werde ich es brauchen. Schließlich fragt mich mein FTP-Programm ja auch immer nach einem LogIn mit Passwort.

Kann mir einer dabei helfen oder mir vielleicht sagen, ob es irgendwo dafür vorgefertigte (leicht zu verstehende) Quellcodes gibt?

VIELEN DANK.

bei Antwort benachrichtigen
d-oli W.Stecher „Datei downloaden und uploaden mit C++“
Optionen

Mit was für einem OS?

Mit Linux käme da z.B. RPC (Remote Procedure Call) oder XML-RPC (ein Webservice) in Frage.
- http://www.xmlrpc.com/
- http://xmlrpc-c.sourceforge.net/

Mit Windows DCOM oder SOAP (Ebenfalls ein webservice, Weiterentwicklung von XMLRPC).
- http://www.devarticles.com/c/a/Cplusplus/Building-A-SOAP-Client-With-Visual-C-plus/

Gruss, d-oli

Konstruktive Kritik zeichnet sich dadurch aus, dass sie höflich, nützlich und sachlich ist.
bei Antwort benachrichtigen
PaoloP W.Stecher „Datei downloaden und uploaden mit C++“
Optionen

das ist nicht unwesentlich betriebsystem-abhängig.
welches verwendest du ?

unter windows kannst du das mit dem Winsock erreichen.
mit hilfe der mfc sind das tatsächlich wenige zeilen.

Jedes mal wenn jemand "Cloud" sagt, verliert ein Engel seine Flügel.
bei Antwort benachrichtigen
KarstenW W.Stecher „Datei downloaden und uploaden mit C++“
Optionen

Ich nehm' mal an du benutzt Windows. Wenn du die MFC-Bibliothek benutzt, kannst du das mit ein paar Memberfunktionen der Klassen:

CInternetSession
CInternetConnection
CFtpConnection
u.a

erledigen.

Ein paar einfache Beispiele sind im Buch "Visual C++ Kompendium" von Dirk Louis / Viktor Toth vom Verlag Markt+Technik aufgeführt. Da ist auch eine Autorenversion von Visual C++ dabei.

Wenn du MFC nicht benutzt , bleibt dir nur die Betriebsystemfunktionen der WinInet-API übrig.

Programmcode kann ich nicht liefern, weil ich noch nie einen FTP-Client programmiert habe :-(.

Gruß K

Debian GNU/Linux https://www.debian.org/index.de.html
bei Antwort benachrichtigen
KarstenW Nachtrag zu: „Ich nehm mal an du benutzt Windows. Wenn du die MFC-Bibliothek benutzt, kannst...“
Optionen

Ich meine das Buch "Visual C++ 6" Kompendium von Dirk louis/Viktor Toth Markt+Technik. Das gibt es bei www.amazon.de.

Debian GNU/Linux https://www.debian.org/index.de.html
bei Antwort benachrichtigen
W.Stecher Nachtrag zu: „Datei downloaden und uploaden mit C++“
Optionen

Also das ganze wird unter Windows programmiert und soll auch unter Windows laufen.
Die Software mit der ich schreibe wird Borland C++ Builder sein.
Kann ich das mit MFC programmieren ?
Frage nur, weil ich es nicht kenne und "PaoloP" geschrieben hat, das es dann wirklich nur ein paar Zeilen sind. Gibt es dafür dann irgenbdwo Beispiel-Quellcodes ?

Danke.

bei Antwort benachrichtigen
W.Stecher Nachtrag zu: „Datei downloaden und uploaden mit C++“
Optionen

Hallo und noch eine Frage:

Ich habe den Quellcode aus dem Visual C++ Kompendium (Seite 834/835) einmal ausprobiert:

#include

bei Antwort benachrichtigen
thomas woelfer W.Stecher „Hallo und noch eine Frage: Ich habe den Quellcode aus dem Visual C Kompendium...“
Optionen

'unresolved external symbol' bedeutet das du die library in der das symbol definiert wird (sprich: die library die diese funktionen enthaelt) nicht mitlinkst. du must dem linker mitteilen, welche zusaetzlichen libraries er durchsuchen soll, um diese symbole zu finden.

WM_HOPETHISHELPS

this posting contains no tpyos.
bei Antwort benachrichtigen
W.Stecher Nachtrag zu: „Datei downloaden und uploaden mit C++“
Optionen

Danke für die Antwort,
ich ich habe gedacht, dass ich das mit den "#include"-Anweisungen mache ???

Und zu Beginn meines Programmes binde ich folgende Dateien über "#include" ein:
vcl.h
windows.h
wininet.h
stdio.h

In der wininet.h sind die ganzen Funktionen, die beim Compilieren mit dem Fehler "unresolved external symbol" aufgelistet werden, definiert.

Habe ich da einen Denkfehler, oder muß die die DAteien (oder andere) sonst noch wo einbinden ?

DANKE.

bei Antwort benachrichtigen
vergisses W.Stecher „Datei downloaden und uploaden mit C++“
Optionen

Hi,

erst mal ein paar kleine Anmerkungen.
Suchst Du nur eine Problemlösung oder willst Du
wirklich die Programmierung mit C lernen ?

Im ersten Fall sollest Du besser auf fertige Programme
zurückgreifen. Da gibt es sicherlich irgendwo im Internet
eine passende Lösung.

Im zweiten Fall solltest Du Dir erst mal kleinere
und überschaubarere Aufgaben stellen und Dir erst mal
grundlegende Kentnisse über die Arbeitsweise
der C Compiler aneignen, bevor Du an komplexere Themen
herangehst.
Bei Deiner Vorgehensweise läufst Du Gefahr, dass Du Dein
Programm zwar irgendwann dank umfassender Hilfe Anderer zum
Laufen bringst, aber im Grunde nicht viel dabei verstanden
bzw. gelernt hast.

Nun zu Deinem Problem.
C Kompiler arbeiten normalerweise in mehreren Schritten:

Zuerst wird der Quelltext durch einen Präprozessor verarbeitet.
Dieser Präprozessor verarbeitet die Präprozessor Anweisungen / Direktiven.
Das sind die Zeilen, welche mit # anfangen.
Im Grunde ist der Präprozesser ein Textverarbeitungswerkzeug,
das aus dem ursprünglichen Quelltext einen neuen Quelltext erzeugt.
So werden z. B. alle #include Anweisungen durch den Inhalt
der includierten Datei ersetzt.

Anschließend kommt der eigentliche Compilier Vorgang,
der aus dem vom Präprozessor erzeugten Quelltext ein
Object File generiert. (*.o oder *.obj)
In diesem Object File liegen nur die von Dir programmierten
bzw. über den Präprozessor dazugefügten Sourcen kompiliert vor.
Dabei sollte man wissen, daß normalerweise in den Include Dateien
keine kompletten Funktionalitäten, sondern nur Funktions Prototypen
und Datentypendefinitionen liegen.
Die eigentlichen Bibliotheksfunktionen liegen in externen,
bereits vorkompilierten Bibliotheken z. B. in Form von *.lib Dateien vor.

Damit ein ablauffähiges Programm entsteht, müssen alle diese Teile
mit einem Linking- Loader (Linker) zusammengebunden werden.
Diesem Linker muß man mitteilen, in welchen Dateien (Object Files
und Libfiles) er denn die ganzen Funktionalitäten findet.

Ich habe schon lange nicht mehr mit einem Borland C Compiler
gearbeitet, aber irgendwo bei den Projekt Eigenschaften
wirst Du nach den benötigten Bibliotheken gefragt.
Da musst Du die Bibiliothek mit den internet... Funktionen
angeben.

Gruss, vergisses

bei Antwort benachrichtigen