Alles rund um die Programmierung mit Qt
Slowmo
Beiträge: 25 Registriert: 21. März 2007 16:02
Kontaktdaten:
Beitrag
von Slowmo » 25. März 2007 17:49
Ich möchte per FTP eine Liste von Dateien auf einen Server hochladen und zwar mit folgender Funktion:
Code: Alles auswählen
bool FTPWindowImpl::Upload(QString Server, QString Username, QString Password, QStringList FilesLocal, QStringList FilesServer) {
FTP.connectToHost(Server);
FTP.login(Username, Password);
int count;
count = FilesLocal.size();
PBar_Total->setRange(0,count);
QFile *File = new QFile;
for (int i=0;i>=count;i++) {
File->setFileName(FilesLocal.at(i));
File->open(QIODevice::ReadOnly);
this->FTP.put(File->readAll(), FilesServer.at(i));
File->close();
PBar_Total->setValue(i);
}
delete File;
FTP.close();
return 1;
}
Aber irgendwie wird die for-Schleife nicht ausgeführt. Kann jemand helfen?
Christian81
Beiträge: 7319 Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:
Beitrag
von Christian81 » 25. März 2007 17:55
Hinschauen
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
Slowmo
Beiträge: 25 Registriert: 21. März 2007 16:02
Kontaktdaten:
Beitrag
von Slowmo » 26. März 2007 09:47
Okay, das war peinlich. Aber jetzt kommt beim debuggen ein Fehler und ich kann nicht herausfinden was er bedeuten soll ....
Code: Alles auswählen
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1223280416 (LWP 4386)]
0xb74700ef in QString::operator= () from /usr/lib/libQtCore.so.4
Christian81
Beiträge: 7319 Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:
Beitrag
von Christian81 » 26. März 2007 09:49
Da hilft wohl nur debuggen da ich auf die Schnelle nichts weiter sehe.
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
lepsai
Beiträge: 573 Registriert: 14. September 2004 21:33
Wohnort: Berlin
Kontaktdaten:
Beitrag
von lepsai » 26. März 2007 10:19
kommt der Fehler innerhalb der Schleife?
Slowmo
Beiträge: 25 Registriert: 21. März 2007 16:02
Kontaktdaten:
Beitrag
von Slowmo » 26. März 2007 10:21
Der Fehler kommt exakt hier:
Er muss igendwas mit FileLocal.at(i); zu tun haben.
Christian81
Beiträge: 7319 Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:
Beitrag
von Christian81 » 26. März 2007 10:32
lepasai hat wohl recht - deine Schleife ist immer noch nicht korrekt!
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
macman
Beiträge: 1738 Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:
Beitrag
von macman » 26. März 2007 10:52
Jeder weiß es, keiner sagt es
Christian81
Beiträge: 7319 Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:
Beitrag
von Christian81 » 26. März 2007 10:57
Würdest Du deinen neuen Code posten und nochmal genau ggf. hinschauen würde man es sehen ob wir richtig liegen.
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
Slowmo
Beiträge: 25 Registriert: 21. März 2007 16:02
Kontaktdaten:
Beitrag
von Slowmo » 26. März 2007 11:09
Hat sich erledigt, es war mal wieder meine eigene Dummheit (ich sollte mal weniger fragen, mehr denken), hier der fertige Code:
Code: Alles auswählen
bool FTPWindowImpl::Upload(QString Server, QString Username, QString Password, QStringList FilesLocal, QStringList FilesServer) {
FTP.connectToHost(Server);
FTP.login(Username, Password);
int count;
count = FilesLocal.size();
PBar_Total->setRange(0,count);
QFile *File = new QFile;
for (int i=0;i<count;i++) {
File->setFileName(FilesLocal.at(i));
File->open(QIODevice::ReadOnly);
this->FTP.put(File->readAll(), FilesServer.at(i));
File->close();
}
delete File;
FTP.close();
return 1;
}