FTP Problem beim Senden von Dateien

Anfängerfragen zum Programmieren mit PureBasic.
php-freak
Beiträge: 536
Registriert: 07.02.2009 18:08

FTP Problem beim Senden von Dateien

Beitrag von php-freak »

Habe hier ein kleines FTP Script:

Code: Alles auswählen

Procedure SendDataViaFTP(input)
  If OpenFTP(1, "XXX", "XXX", "XX", 1)
  ForEach Files()
    FileName$ = GetFilePart(Files())
    Result = SendFTPFile(1, Files(), "www/lalal/bla"+FileName$, 0)
    SizeOfFile.l =  FileSize(files())
    Debug "Size"+Str(SizeOfFile)
    SetGadgetAttribute(2, #PB_ProgressBar_Maximum, SizeOfFile)
    Repeat
    Debug "FTP Progress"+ Str(FTPProgress(1))
      SetGadgetState(2, FTPProgress(1))
      Delay(300)
    Until FTPProgress(1) = #PB_FTP_Finished Or FTPProgress(1) = #PB_FTP_Error
    
    SetGadgetState(2, 0)
  
  Next  
  Else
    MessageRequester("Error", "Verbindung zum FTP Server ist fehlgeschlagen")
  EndIf
EndProcedure
So funktioniert der Upload auch und die Dateien sind nachher aufm Server!

Aber ich muss das ja eigentlich so machen:

Code: Alles auswählen

If OpenFTP(1, "XXX", "XXX", "XX", [b]0[/b])
Nur funktioniert das so nicht und er sagt mir das der ProgressBar nicht initalisiert wurde!

Habe den Progress bar in einer Procedure davor aber gestartet und die Procedure noch vor diesem Script.

Ich finde einfach nicht den Fehler.

Danke für eure Hilfe

JENS

Edit: Ich habe natürlich Die Liste Files() Global angelegt!
Zuletzt geändert von php-freak am 15.04.2009 21:19, insgesamt 1-mal geändert.
PureBasic 4.30 (x86)
Benutzeravatar
X360 Andy
Beiträge: 1206
Registriert: 11.05.2008 00:22
Wohnort: Bodensee
Kontaktdaten:

Beitrag von X360 Andy »

Was ist FB ?

Und für was bitte ist "Input" , in der Procedure ?
php-freak
Beiträge: 536
Registriert: 07.02.2009 18:08

Beitrag von php-freak »

Input... Naja man muss ja wenn man das ganze als Thread laufen lässt eine Parameter übergeben und dafür brauch ich input....

FP --> :lol: Naja das sollte FTP heißen!
PureBasic 4.30 (x86)
Benutzeravatar
Batze
Beiträge: 1492
Registriert: 03.06.2005 21:58
Wohnort: Berlin
Kontaktdaten:

Beitrag von Batze »

was gibt er denn für eine Fehlermeldung aus?
Hier sind meine Codes (aber die Seite geht gerade nicht):
http://www.basicpure.de.vu
php-freak
Beiträge: 536
Registriert: 07.02.2009 18:08

Beitrag von php-freak »

Naja wenn ich es ändere meint er das der ProgressBar nicht initalisert wurde...
PureBasic 4.30 (x86)
php-freak
Beiträge: 536
Registriert: 07.02.2009 18:08

Beitrag von php-freak »

Hier mal ein Bild davon:

Bild
PureBasic 4.30 (x86)
php-freak
Beiträge: 536
Registriert: 07.02.2009 18:08

Beitrag von php-freak »

Das passiert aber nur wenn man bei OpenFTP(1, "XXX", "XXX", "XXX", 0) am ende die 0 setzt anstatt die Eins und dann währen des Uploads den Thread killt!
PureBasic 4.30 (x86)
Benutzeravatar
Bisonte
Beiträge: 2468
Registriert: 01.04.2007 20:18

Beitrag von Bisonte »

Bist Du dir sicher das Du auf Gadget Nr 2 auch ein Gadget hast ?

Da die Variable Input bei dir wohl ein "Dummy" ist, kannst Du doch dort die
Gadgetnummer übergeben.

und dann die Zeile mit der fehlermeldung so :

Code: Alles auswählen

SetGadgetAttribute(input, #PB_ProgressBar_Maximum, SizeOfFile) 
korrigieren.

oder Du prüfst mit IsGadget() davor, um ganz sicherzugehen, dass die übergebene Zahl auch wirklich ein initialisiertes Gadget ist.

Edit : Autsch ich sehe jetzt erst das es um Threads geht. Da war doch was von wegen keine fremden Gadgets nutzen ....
Also wenn du Gadgets im Thread benutzen willst, solltest du das komplette Windowhandling (bei Openwin angefangen) in dem Thread haben.
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
php-freak
Beiträge: 536
Registriert: 07.02.2009 18:08

Beitrag von php-freak »

Danke Bisonte!

Ich werde mein Script anpassen und es dann nochmal versuchen!
PureBasic 4.30 (x86)
Antworten