FTP-Funktion verbessern (wenn möglich)

    • FTP-Funktion verbessern (wenn möglich)

      Hallo,
      ich experimentiere gerade mit dem FTP(...)-Befehl rum. Da ist mir aufgefallen, dass es 1. ziemlich umständlich ist eine Dateiliste zu bekommen und 2. beim Up-/Download kein Fortschritt angezeigt werden kann, bzw. das Programm bis zum Ende der Übertragung stillsteht.
      2. ist verschmerzbar, aber 1. nervt schon ziemlich. Wenn ich mich mit meiner Cloud verbinde bekomme ich per FTP("ListDir") in etwa folgendes Ergebnis:

      Spoiler anzeigen

      -rwxrw-rw- 1 jacdelad users 13085566 Jul 10 10:59 Dangaa - Altai.mp3
      -rwxrw-rw- 1 jacdelad users 6187916 Jul 10 10:59 Dangaa - Flight of the Eagle.mp3
      -rwxrw-rw- 1 jacdelad users 17089420 Jul 10 10:59 Dangaa - Grassland and Breeze.mp3
      -rwxrw-rw- 1 jacdelad users 9827222 Jul 10 11:00 Dangaa - Longing for the Endless Planes.mp3
      -rwxrw-rw- 1 jacdelad users 15203206 Jul 10 11:00 Dangaa - Mongolian Mood.mp3
      -rwxrw-rw- 1 jacdelad users 10367876 Jul 10 11:01 Dangaa - Native Calls.mp3
      -rwxrw-rw- 1 jacdelad users 8913806 Jul 10 11:02 Dangaa - Saga of Dschingis Khan.mp3
      -rwxrw-rw- 1 jacdelad users 9462675 Jul 10 11:02 Dangaa - Shepherd At a Mountain Lake.mp3
      -rwxrw-rw- 1 jacdelad users 8055694 Jul 10 11:03 Dangaa - Thoat Singer's Parade.mp3
      -rwxrw-rw- 1 jacdelad users 9411468 Jul 10 11:03 Dangaa - Voices of Springtime.mp3
      -rwxrw-rw- 1 jacdelad users 8235916 Jul 10 11:03 Dangaa - Witches and Shamanes.mp3
      drwxrwxrwx 2 jacdelad users 4096 Jul 12 11:00 Test


      Ich weiß nicht, ob das an meiner Cloud liegt oder generell so ist, aber es wäre gut, wenn das einfacher ginge. Am besten nicht die Ausgabe in eine Datei, sondern vielleicht in die Listboxliste oder so. Und geordneter, es ist schwer hier die relevanten Daten zu filtern.
      XProfan-Profi (XProfan X3.1+XPIA)
      Core i5 2550K/16GB RAM/Radeon HD7770 OC/Creative X-Fi XTreme Music/60TB HDD
      http://jacdelad.bplaced.net
      XBox Classic/360S/One/One S/PS4 Pro (XBL-ID: jacdelad, PSN: jacdelad84)
      Samsung Galaxy S6 edge pearlwhite mit 128GB und Android 7.1.2
    • FTP("List",...) liefert exakt das, was der Server liefert. Leider ist das Format nicht einheitlich oder genormt, so dass ich am Ergebnis der Funktion nicht herumdoktern möchte.
      Was die Ablage des Ergebnisses in der Listboxliste betrifft, schaue ich mir das mal an.

      Gruß
      Roland
      Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD / ATI Radeon HD4770 512 MB / Windows 7(32) - XProfan X3
      AMD Athlon II X2 2,9 GHz / 3 GB RAM / 500 GB HDD / ATI Radeon 3000 (onboard) / Windows 10(64) - XProfan X3


      http://www.xprofan.de
    • Ein anderer Ordner auf dem selben Server gibt das aus:
      Spoiler anzeigen

      -rwxrw-rw- 1 jacdelad users 6887268 Dec 2 2016 1-01 Rubbles.ogg
      -rwxrw-rw- 1 jacdelad users 6877378 Dec 2 2016 1-02 Magpie Eggs.ogg
      -rwxrw-rw- 1 jacdelad users 5572234 Dec 2 2016 1-03 Ardennes.ogg
      -rwxrw-rw- 1 jacdelad users 5714149 Dec 2 2016 1-04 A Sense Of Grey.ogg
      -rwxrw-rw- 1 jacdelad users 6432649 Dec 2 2016 1-05 Smoke.ogg
      -rwxrw-rw- 1 jacdelad users 8526437 Dec 2 2016 1-06 Poetry.ogg
      -rwxrw-rw- 1 jacdelad users 6450324 Dec 2 2016 1-07 Stuck In The Waltz.ogg
      -rwxrw-rw- 1 jacdelad users 8774049 Dec 2 2016 1-08 7!.ogg
      -rwxrw-rw- 1 jacdelad users 4181844 Dec 2 2016 1-09 Krokstav-emne.ogg


      Bisher hab ich mich am ":" orientiert um die Dateinamen zu bekommen, aber so... :-(
      XProfan-Profi (XProfan X3.1+XPIA)
      Core i5 2550K/16GB RAM/Radeon HD7770 OC/Creative X-Fi XTreme Music/60TB HDD
      http://jacdelad.bplaced.net
      XBox Classic/360S/One/One S/PS4 Pro (XBL-ID: jacdelad, PSN: jacdelad84)
      Samsung Galaxy S6 edge pearlwhite mit 128GB und Android 7.1.2
    • Hallo Jac!

      Ich weiß zwar, Du suchst eine allgemeine Lösung, aber Vorschlag: Einstweilen könnte man sich vielleicht wie nachstehend behelfen (- in der Hoffnung, daß es eine endliche Menge an OS-Ausgabeformaten gibt und man diese jeweils irgendwie erkennen kann):

      Quellcode

      1. cls:declare T$[]:T$[]=explode("\
      2. -rwxrw-rw- 1 jacdelad users 6887268 Dec 2 2016 1-01 Rubbles.ogg\n\
      3. -rwxrw-rw- 1 jacdelad users 6877378 Dec 2 2016 1-02 Magpie Eggs.ogg\n\
      4. -rwxrw-rw- 1 jacdelad users 5572234 Dec 2 2016 1-03 Ardennes.ogg\n\
      5. -rwxrw-rw- 1 jacdelad users 5714149 Dec 2 2016 1-04 A Sense Of Grey.ogg\n\
      6. -rwxrw-rw- 1 jacdelad users 6432649 Dec 2 2016 1-05 Smoke.ogg\n\
      7. -rwxrw-rw- 1 jacdelad users 8526437 Dec 2 2016 1-06 Poetry.ogg\n\
      8. -rwxrw-rw- 1 jacdelad users 6450324 Dec 2 2016 1-07 Stuck In The Waltz.ogg\n\
      9. -rwxrw-rw- 1 jacdelad users 8774049 Dec 2 2016 1-08 7!.ogg\n\
      10. -rwxrw-rw- 1 jacdelad users 4181844 Dec 2 2016 1-09 Krokstav-emne.ogg","\n")
      11. declare n&,v&,va&
      12. v&=0
      13. weitersuchen:
      14. va&=v&:v&=instr(" ",T$[0],va&+1)':print v&
      15. inc n&:case n&<8:goto "weitersuchen"
      16. if mid$(T$[0],1,2)="-r"
      17. print "\nReading in .NIX-OS filenames:\n"
      18. whileloop 0,sizeof(T$[])-1
      19. Print "*";mid$(T$[&Loop],v&+1,Len(T$[&Loop])-v&);"*"
      20. endwhile
      21. else
      22. print "\n Anderes OS, andere Methode nötig!\n"
      23. endif
      24. Waitinput
      Alles anzeigen
      Gruss

      P.S.: Könnte dann auch ein Fall für RegEx-Match sein ...
    • Hallo,
      danke für den Code. Ich hab schon eine Methode zum Aufschlüsseln der Dateinamen, die so lange funktioniert, wie eins der beider Schemata verwendet wird. Deine sieht aber auch sehr interessant aus, den Code gehe ich gerade durch.
      Ich wunder mich nur, dass es so kompliziert gemacht wird. Normale FTP-Programme kommen mit jedem Server zurecht, das kann eigentlich nicht so schwer sein. @Roland: Bitte nicht als böse Kritik an XProfan sehen.

      Das ist meine aktuelle Methode (funktioniert mit beiden Schemata):

      Quellcode

      1. declare p$[],d$,s$
      2. cls
      3. p$[]=Explode("-rwxrw-rw- 1 jacdelad users 6887268 Dec 2 2016 1-01 Rubbles.ogg\n-rwxrw-rw- 1 jacdelad users 6877378 Dec 2 2016 1-02 Magpie Eggs.ogg\n-rwxrw-rw- 1 jacdelad users 5572234 Dec 2 2016 1-03 Ardennes.ogg\n-rwxrw-rw- 1 jacdelad users 5714149 Dec 2 2016 1-04 A Sense Of Grey.ogg\n-rwxrw-rw- 1 jacdelad users 6432649 Dec 2 2016 1-05 Smoke.ogg\n-rwxrw-rw- 1 jacdelad users 8526437 Dec 2 2016 1-06 Poetry.ogg\n-rwxrw-rw- 1 jacdelad users 6450324 Dec 2 2016 1-07 Stuck In The Waltz.ogg\n-rwxrw-rw- 1 jacdelad users 8774049 Dec 2 2016 1-08 7!.ogg\n-rwxrw-rw- 1 jacdelad users 4181844 Dec 2 2016 1-09 Krokstav-emne.ogg","\n")
      4. whileloop 0,SizeOf(p$[])-1
      5. if InStr(":",p$[&Loop])
      6. d$=Del$(SubStr$(p$[&Loop],2,":"),1,3)
      7. else
      8. d$=Trim$(Right$(p$[&Loop],Len(p$[&Loop])-InStr("users",p$[&Loop])-5))
      9. whileloop 4
      10. d$=Trim$(Del$(d$,1,InStr(" ",d$)))
      11. endwhile
      12. endif
      13. Print "*"+d$
      14. endwhile
      15. waitinput
      16. end
      Alles anzeigen
      ...ist aber eben nicht wirklich effektiv.
      XProfan-Profi (XProfan X3.1+XPIA)
      Core i5 2550K/16GB RAM/Radeon HD7770 OC/Creative X-Fi XTreme Music/60TB HDD
      http://jacdelad.bplaced.net
      XBox Classic/360S/One/One S/PS4 Pro (XBL-ID: jacdelad, PSN: jacdelad84)
      Samsung Galaxy S6 edge pearlwhite mit 128GB und Android 7.1.2

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Jac de Lad ()

    • Neu

      Ich habe mir mal die FTP-Unit näher angesehen und etwas gegoogelt: Ich denke für das Problem mit "ListDir" habe ich eine Lösung gefunden, die nur eine Liste der reinen Dateinamen zurückgibt. Es wird vermutlich aber weiter bei einer Datei bleiben, die erzeugt wird. aber mit Move("FileToList" sollte es ja kein Problem sein.

      Aber ich forsche noch etwas weiter ...

      Gruß
      Roland
      Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD / ATI Radeon HD4770 512 MB / Windows 7(32) - XProfan X3
      AMD Athlon II X2 2,9 GHz / 3 GB RAM / 500 GB HDD / ATI Radeon 3000 (onboard) / Windows 10(64) - XProfan X3


      http://www.xprofan.de
    • Neu

      Wow, danke Roland. Wäre gut wenn beide Möglichkeiten drin wären. Momentan nutze ich die "Langversion", weil ich Probleme FTP("GetFileSize" habe. So kriege ich alles auf einmal. Das funktioniert aber eben nur so lange wie ich auf meinem eigenen Server bleibe. Vielleicht wäre es möglich eine Funktion oder mehrere für die Eigenschaften zu mache. Zum Beispiel ob ein Eintrag eine Datei oder ein Ordner ist. Und das Datum. Wie gesagt, wenn möglich. Wenn es eine DLL gibt nehme ich die auch.
      XProfan-Profi (XProfan X3.1+XPIA)
      Core i5 2550K/16GB RAM/Radeon HD7770 OC/Creative X-Fi XTreme Music/60TB HDD
      http://jacdelad.bplaced.net
      XBox Classic/360S/One/One S/PS4 Pro (XBL-ID: jacdelad, PSN: jacdelad84)
      Samsung Galaxy S6 edge pearlwhite mit 128GB und Android 7.1.2
    • Neu

      Ja, es werden natürlich beide Möglichkeiten drin sein. Zum einen aus Kompatibilitätsgründen und zum anderen können in vielen Fällen auch die weitergehenden Infos (zu Flags, Rechten, Zeiten, etc.) wichtig sein:

      FTP("ListDir", Datei$[, Modus])

      Ist Modus nicht angegeben oder 0, gibt es die bisherige Form, ist der Modus <> 0 gibt es die Kurzfassung!

      Gruß
      Roland
      Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD / ATI Radeon HD4770 512 MB / Windows 7(32) - XProfan X3
      AMD Athlon II X2 2,9 GHz / 3 GB RAM / 500 GB HDD / ATI Radeon 3000 (onboard) / Windows 10(64) - XProfan X3


      http://www.xprofan.de

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von RGH ()