PB.Ex FTP (Windows)

Anwendungen, Tools, Userlibs und anderes nützliches.
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: PB.Ex FTP (Windows)

Beitrag von RSBasic »

Vielen Dank für das Feedback. :)
Da ich demnächst im Urlaub bin, werde ich es mir nach dem Urlaub anschauen.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Kurzer
Beiträge: 1614
Registriert: 25.04.2006 17:29
Wohnort: Nähe Hamburg

Re: PB.Ex FTP (Windows)

Beitrag von Kurzer »

<ot> einen schoenen urlaub wuensche ich dir, rsbasic. :-) </ot>
"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?"
PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Useralter in 2023: 56 Jahre.
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: PB.Ex FTP (Windows)

Beitrag von RSBasic »

Stefou hat geschrieben:Bei der Verwendung habe ich ein Problem festgestellt:
Das Programm stürzt ab, wenn ich eine Dateiänderung an einer nicht vorhandenen Datei vornehme.

Ich wünsche dir einen schönen Tag

Code: Alles auswählen

  If OpenFTPEx(1, #PBEx_FTP_Protocol_FTPS_Explicit, ftp$, 21, log$, pass$, #PB_UTF8, @ErrorOutput$) 
    ; "courriers_sans_revue"
    result = SetFTPDirectoryEx(1, "Verzeichnis nicht vorhanden", @ErrorOutput) ;-----> Error
    If ExamineFTPDirectoryEx(1, @ErrorOutput$) 
      While NextFTPDirectoryEntryEx(1, @ErrorOutput$) 
        FTPDirectoryEntryNameEx(1, @FileName$, @ErrorOutput$) 
        Debug FileName$ 
      Wend       
    EndIf     
    CloseFTPEx(1, @ErrorOutput$) 
  Else  
    Debug ErrorOutput$ 
  EndIf 
Sorry für die späte Antwort.
Ich habe versucht, nachzustellen. Den Fehler kann ich nicht nachstellen. Das Programm stürzt nicht ab.
Mir ist aber aufgefallen, dass die Fehlerbeschreibung in deinem Code in die Variable ErrorOutput geschrieben wird. Ist bei dir die Variable ErrorOutput eine Zeichenkette/String oder eine Ganzzahl?
Wenn ich bei mir ErrorOutput als Ganzzahl definiere, dann kann ich den Absturz nachstellen. Ich denke mal, du hast entweder $ vergessen oder beim Definieren der Variable ".s" vergessen.
Wichtig ist auch, dass du die Zeichenkette entweder mit "" (ist aber nur auf eine bestimmte Anzahl an Zeichen begrenzt) oder mit Space() initialisierst, sonst ist die Adresse deiner Variable, die du übergibst, gleich 0.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: PB.Ex FTP (Windows)

Beitrag von RSBasic »

RalfP hat geschrieben:Kleiner Schönheitsfehler:
OpenFTPEx() funktioniert (bei mir jedenfalls) mit #PB_Any nicht. Kann das jemand bestätigen? Es geht aber wunderbar wenn eine feste Nummer vergeben wird.
Sorry für die späte Antwort. Ich habe versucht, nachzustellen und ich vermute mal, es liegt daran, dass dein Code etwa so aufgebaut war:

Code: Alles auswählen

Result = OpenFTPEx(#PB_Any, #PBEx_FTP_Protocol_SFTP, "test.rebex.net", 22, "demo", "password", #PB_UTF8, @ErrorOutput$)
  If Result
    ;...
  Else
    Debug ErrorOutput$
  EndIf
Wenn du #PB_Any stattdessen verwendest, dann wird eine verfügbare aufsteigende Nummer zurückgegeben, die bei 0 anfängt, danach 1, 2 usw.
Wenn du danach nur If Result abfragst, dann wird dein Code nicht ausgeführt, weil die If-Bedingung falsch ergibt. 0 bedeutet in diesem Fall nicht "Fehler", sondern die ID 0, die du für die FTP-Funktionen benutzen kannst.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
RalfP
Beiträge: 23
Registriert: 17.03.2014 22:32

Re: PB.Ex FTP (Windows)

Beitrag von RalfP »

Hallo RSBasic,

Du vermutest richtig. Ich danke Dir für die Erklärung. Da wäre ich alleine vermutlich nie darauf gekommen.
Wenn OpenFTPEx() mit #PB_Any beim ersten erfolgreichen Anwenden "0" zurückgibt UND bei einem Fehler ebenfalls "0" zurückgibt, ist der zurückgelieferte Wert nicht geeignet zwischen einem erfolgreichen und einem erfolglosen Verbindungsversuch zu unterscheiden. Wenn man #PB_Any verwenden will, müsste man ErrorOutput$ auswerten.
Ich werde mich auf die Vergabe fester Nummern beschränken, das ist am einfachsten.

Viele Grüße
RalfP
Beiträge: 23
Registriert: 17.03.2014 22:32

Re: PB.Ex FTP (Windows)

Beitrag von RalfP »

RSBasic hat geschrieben:Vielen Dank für das Feedback. :)
Da ich demnächst im Urlaub bin, werde ich es mir nach dem Urlaub anschauen.
Hallo RSBasic

Du hast bestimmt mit deinen anderen Projekten genug zu tun, aber ist es denn sinnvoll auf ein Upgrade bzgl. "FTPProgressEx" zu hoffen, oder funktioniert das grundsätzlich mit deiner DLL nicht (z.B. weil das .NET Framework das nicht hergibt)? Ich frage, weil ich ein FTP-Programm in der Pipeline habe, und dafür gerne deine Bibliothek einsetzen möchte. Aber ohne Fortschrittbalken ist das FTP-Programm schlecht zu gebrauchen. Und um den Datenfluss irgendwie anders "live" zu messen fehlt mir die Erfahrung.

Viele Grüße
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: PB.Ex FTP (Windows)

Beitrag von RSBasic »

Ich kann mir das mal später anschauen.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
RalfP
Beiträge: 23
Registriert: 17.03.2014 22:32

Re: PB.Ex FTP (Windows)

Beitrag von RalfP »

Vielen Dank!
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: PB.Ex FTP (Windows)

Beitrag von RSBasic »

PB.Ex FTP 1.0.4.0 wurde veröffentlicht.

Changelog:
  • Hinzugefügt: FTPProgressEx()
  • Erweitert: ReceiveFTPFileEx(): Parameter "IsAsynchron" wurde hinzugefügt.
  • Erweitert: SendFTPFileEx(): Parameter "IsAsynchron" wurde hinzugefügt.
  • Geändert: Systemvoraussetzungen: .NET Framework 4.0 -> .NET Framework 4.5, weil die benötigte Assembly System.Progress erst ab 4.5 gibt.
  • Geändert: OutputError$ muss vor dem Übergeben mit 128 Zeichen reserviert werden. Maximale Länge der Rückgabe beträgt 128 Zeichen einschließlich des NULL-Zeichens.
  • Geändert: OutputError$: Dieser Parameter ist jetzt optional und kann 0 sein.
@RalfP
Erledigt
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
RalfP
Beiträge: 23
Registriert: 17.03.2014 22:32

Re: PB.Ex FTP (Windows)

Beitrag von RalfP »

@RSBasic
Das ist super! <)
Ich werde das für mein FTP-Programm nutzen, das ich, in neuem Thema, hier dann auch veröffentlichen werde.
Antworten