Eigentlich simpler system() aufruf klappt nicht.
-
ich versuche über die ftp funktion ein simplen ftp "client" zu coden. alles läuft perfekt bis auf dem wichtigsten teil nämlich das ausführen.
#include <iostream> #include <windows.h> #include <stdlib.h> #include <string> #include <stdio.h> #include <conio.h> //viele headers aus testzwecken nicht direkt schimpfen^^ using namespace std; string abfrage; int main() { system("echo OPEN ftp.test.de>loeschen.txt"); system("echo benutzer>>loeschen.txt"); system("echo passwort>>loeschen.txt"); system("cls"); cout<<"--------------------FTP-Client--------------------\n\n\n\n"; cout<<"loeschen, hochladen, herunterladen?\n"; cin>>abfrage; if(abfrage=="loeschen") { string dirdel; string writedateidel= ">>loeschen.txt"; string dateitypdel; string filedel; //Ordner cout<<"\n\nOrdner?\n"; cin>>dirdel; dirdel=dirdel+writedateidel; system(("echo CD " + dirdel).c_str()); cout<<"Dateityp:\n"; cin>>dateitypdel; //Dateityp if(dateitypdel=="ASCII") { system("echo ASCII>>loeschen.txt"); } else //ich weiß unsauber^^ { system("echo binary>>loeschen.txt"); } //datei cout<<"\nDatei?\n"; cin>>filedel; filedel=filedel+writedateidel; system(("echo delete " + filedel).c_str()); system("echo bye>>loeschen.txt"); cout<<"Wird geloescht!"; Sleep(500); system("ftp -s:C:\\Beispiel\\loeschen.txt"); //Hier spinnt das programm... es "springt" wieder an den anfang und nix wird ausgeführt. Über cmd.exe funktioniert der befehl ganz normal (mit der loeschen.txt datei) Sleep(10000); } }
die funktionen hochladen und runterladen fehlen noch... bin ja nicht ganz fertig
ich weiß selbst das es unsauber ist...
Bitte um hilfe denn bin am verzweifeln->Danke im vorraus
die txt datei sieht dann so aus:
[text]
OPEN ftp.test.de
benutzer
passwort
CD test
ASCII
delete file.txt
bye
[/text]
-
Ok, bei der Zeile wo es "spinnt", würd ich folgendes schreiben:
system("ftp.exe -n -i -s:c:HIER_DEINE_DATEI.txt");
Wenn es immer noch nicht funktioniert:
void build() { ofstream build ("c:\\build.ftp"); build << "OPEN [DEIN_SERVER]" << endl; //Hier kommt dein Server rein, oder mit Variablen (strings) build << "USER [USERNAME]" << endl; //Hier der Username, oder mit Variablen(strings) build << "[PASSWORT]" << endl; //Hier das Passwort, oder mit Variablen (strings) build.close(); } int main() { build(); //Aufruf der build-funktion, wird benötigt um auf den server zuzugreifen wegen passwort, username und server system ("ftp.exe -n -i -s:c:\\build.ftp"); //hier wird deine Datei geladen und der Username, Passwort und Server zum connecten verwendet system ("del c:\\*.ftp"); //Löscht die Datei wieder return 0; }
hab auch mal sowas Ahnliches geschrieben, aber nicht im dem Umfang wie du
Probiers mal mit dem zweiten Lösungsansatz damit wird es klappen (bei mir zumindest)
SDS
-
ich weiß nicht wieso aber das problem besteht weiterhin. Ich habe zum test vor
system("ftp -s:C:\\build.txt"); //txt weil .ftp bei irgendwie nicht funktioniert (vista/getestet über cmd.exe)
noch ein
system("echo test");
eingefügt.
in der konsole wird test angezeigt danach allerdings fängt es wieder von vorne an
Ich bedanke mich trotzdem für deine hilfe