Filelänge auf FTP ermitteln

Anfängerfragen zum Programmieren mit PureBasic.
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Re: Filelänge auf FTP ermitteln

Beitrag von DarkDragon »

SendFTPFile hat bei meinem Router (Speedport W700V) schon einen Crash ausgelöst wenn man auf dem Pfad keine ausreichenden Rechte hatte. Vielleicht ist das derselbe Bug wenn es ein Bug ist.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
HeX0R
Beiträge: 3042
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Re: Filelänge auf FTP ermitteln

Beitrag von HeX0R »

Geht es denn im asynchronen Modus?

Code: Alles auswählen

If OpenFTP(0, server$, user$, pass$, Passiv, 21)
	If SetFTPDirectory(0, "Path")
		If SendFTPFile(0, programm$, programm$, #True)
			Repeat
				k = FTPProgress(0)
				If k = #PB_FTP_Error
					Debug "error!"
					Break
				EndIf
				Delay(10)
			Until k = #PB_FTP_Finished

		EndIf
	EndIf
	CloseFTP(0)
EndIf
Theorie:
Ich denke mal, SendFTPFile legt erst den Dateinamen auf dem FTP an und versucht dann die Datei zu übertragen.
Geht das nicht (weil die Datei blockiert ist), würde eine 0 Byte Datei entstehen.
Dann bleibt natürlich noch die Frage, warum deine Datei blockiert ist.
amiga123
Beiträge: 88
Registriert: 17.02.2009 18:05

Re: Filelänge auf FTP ermitteln

Beitrag von amiga123 »

Theorie:
Ich denke mal, SendFTPFile legt erst den Dateinamen auf dem FTP an und versucht dann die Datei zu übertragen.
Geht das nicht (weil die Datei blockiert ist), würde eine 0 Byte Datei entstehen.
Dann bleibt natürlich noch die Frage, warum deine Datei blockiert ist.
Es ist so das die Datei die an den FTP gesendet wird erst von meinem Programm erstellt werden muß. Ist sie fertig (Datei natürlich geschlossen) wird sie übertragen.
Jetzt habe ich mal die Routiene so geändert das zuerst noch ein ander Programmabschnitt abgearbeitet wird, und dann erst der FTP Upload stattfindet. Werde es heute nacht mal durchlaufen lassen. (Ist ein Programm auf meinem Server das sowieso rund um die Uhr läuft). Mal sehen ob der Fehler heute oder morgen noch auftritt. Wenn nicht ist das Problem nicht du Update auf den Server sondern das die erzeugte Datei noch nicht ganz fertig war. Warum auch immer ? (Ausser Purebasic überholt sich intern selbst)

Erstmal Danke an alle die hier geholfen haben.

Melde mich auf alle Fälle wie es geht.

Gruß Amiga123
Pure Basic 4.60 Vollversion
http://www.Sundisp.de
Benutzeravatar
jojo1541
Beiträge: 431
Registriert: 15.09.2007 17:12
Wohnort: Irgendwo im Nirgendwo

Re: Filelänge auf FTP ermitteln

Beitrag von jojo1541 »

>(Ausser Purebasic überholt sich intern selbst)
Dieses Phänomen hatte ich mal bei Changegamma(255,255,255) mit vorherigem CleaScreen() und FlipBufers(), das Gamma wurde erhöt, bevor ClearScreen und FlipBuffers fertig waren, das Bild ist dann immer immer noch mal aufgetaucht(für so ne 10tel sekunde)... :mrgreen:

(war aber ne ältere Pb-version)
Ich verkaufe Rechtschreibfehler und jede menge GROßBUCHSTABEN. Alles unbegrenzt zu haben.
Benutzeravatar
HeX0R
Beiträge: 3042
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Re: Filelänge auf FTP ermitteln

Beitrag von HeX0R »

Das kann auch mit dem Caching zusammenhängen, du könntest auch probieren das zu deaktivieren (FileBuffersSize(#File, 0))
amiga123
Beiträge: 88
Registriert: 17.02.2009 18:05

Re: Filelänge auf FTP ermitteln

Beitrag von amiga123 »

:mrgreen:

Läuft jetzt geändert sein einer halben Stunde ohne Probleme. Keine Dateilänge mit 0 mehr. Mal schauen wie es morgen aussieht.


Gruß Amiga123
Pure Basic 4.60 Vollversion
http://www.Sundisp.de
amiga123
Beiträge: 88
Registriert: 17.02.2009 18:05

Re: Filelänge auf FTP ermitteln

Beitrag von amiga123 »

Gelöst

Also seit gestern Abend läuft das Programm jetzt ohne Probleme. Es war anscheind nicht die Übertragung zum FTP sondern das Programm konnte auf die selbst erzeugte Datei sporadisch nicht zugreifen (Obwohl die Datei geschlossen war).
Habe nur den Befehl DELAY(100) vor der FTP Routine eingebaut, jetzt geht es.

Danke für alle die Geantwortet haben.

Gruß Amiga123 :bounce:
Pure Basic 4.60 Vollversion
http://www.Sundisp.de
Antworten