WinINet.inc - Eine Inc für verbesserte und erweiterte FTP-Funktionen

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Information: Wir verlosen 9 Kinderbüchlein von Microsoft Mein Papa arbeitet bei Microsoft. Und ich darf mit!

    Unsere Datenschutzerklärung wurde aktualisiert. Mit der Nutzung unseres Forums akzeptierst Du unsere Datenschutzerklärung. Du bestätigst zudem, dass Du mindestens 16 Jahre alt bist.

    • WinINet.inc - Eine Inc für verbesserte und erweiterte FTP-Funktionen

      Neues Update. Keine neuen Funktionen, aber Download jetzt in 3 Variationen:
      - mit eigenem Container "MyFTP", für XProfan ab Version X4
      - als Erweiterung des Containers "FTP" für XProfan ab Version 10.0
      - als normale Funktion für alle, die noch kein XProfan 10.0 haben

      Download hier

      Planung für die nächste Version: Asynchrone Verbindungen, Möglichkeit zu ermitteln ob die Verbindung noch besteht.

      @Mod: Kann der Beitrag in "DLLs, Incs und PRCs" verschoben werden? Sollte er aufgeräumt werden oder soll ich gleich einen neuen Beitrag erstellen?
      XProfan-Semiprofi (XProfan X4+XPIA+LemonEd)
      Ryzen 1700X/MSI B350 PC MATE/16GB RAM@2933MHz/Radeon HD7770 OC/Creative X-Fi XTreme Music/65TB HDD+256GB Samsung 960 EVO/28" Samsung 4k
      XBox Classic/360S/One S/One X Scorpio Edition/PS3 Super Slim 500GB/PS4 Pro (XBL-ID: jacdelad, PSN: jacdelad84) auf 60" 4k/3D LG
      OnePlus 6 256GB Midnight Black
      http://jacdelad.bplaced.net
    • Update:
      - Die Funktion "MyDownloadEx" gibt jetzt sinnvolle Rückgabewerte zurück. Das Gleiche kommt noch für die Funktion "MyUploadEx".
      - Neue Funktion: "IsConnected". Falls jemand noch eine bessere Idee hat: Immer her damit!
      XProfan-Semiprofi (XProfan X4+XPIA+LemonEd)
      Ryzen 1700X/MSI B350 PC MATE/16GB RAM@2933MHz/Radeon HD7770 OC/Creative X-Fi XTreme Music/65TB HDD+256GB Samsung 960 EVO/28" Samsung 4k
      XBox Classic/360S/One S/One X Scorpio Edition/PS3 Super Slim 500GB/PS4 Pro (XBL-ID: jacdelad, PSN: jacdelad84) auf 60" 4k/3D LG
      OnePlus 6 256GB Midnight Black
      http://jacdelad.bplaced.net
    • Update auf Version 0.9.7:
      - Neue Funktion "DeleteDirEx": löscht Ordner mit allen darin enthaltenen Unterordnern und Dateien (leider noch nicht getestet)
      - Neue Variablen: myftpdeletedirexdirs& und myftpdeletedirexfiles&, Rückgabe der Anzahl der mittels DeleteDirEx gelöschten Verzeichnisse/Dateien
      - Angleichung der Codes auf gleiche Version
      - Beginn einer Dokumentation
      - "UploadEx" benötigt noch Überarbeitung
      - Nach Abschluss der Arbeiten kümmer ich mich um asynchrone Verbindungen (=mehrere Operationen gleichzeitig)

      @Volkmar: Kannst du den Titel dieses Threads bitte in "WinINet.inc - Eine Inc für verbesserte und erweiterte FTP-Funktionen" umbenennen?
      XProfan-Semiprofi (XProfan X4+XPIA+LemonEd)
      Ryzen 1700X/MSI B350 PC MATE/16GB RAM@2933MHz/Radeon HD7770 OC/Creative X-Fi XTreme Music/65TB HDD+256GB Samsung 960 EVO/28" Samsung 4k
      XBox Classic/360S/One S/One X Scorpio Edition/PS3 Super Slim 500GB/PS4 Pro (XBL-ID: jacdelad, PSN: jacdelad84) auf 60" 4k/3D LG
      OnePlus 6 256GB Midnight Black
      http://jacdelad.bplaced.net
    • Danke Volkmar. :top:

      Update auf 0.9.8:
      - DeleteDirEx jetzt mit Callback, ausführliche Tests folgen.
      XProfan-Semiprofi (XProfan X4+XPIA+LemonEd)
      Ryzen 1700X/MSI B350 PC MATE/16GB RAM@2933MHz/Radeon HD7770 OC/Creative X-Fi XTreme Music/65TB HDD+256GB Samsung 960 EVO/28" Samsung 4k
      XBox Classic/360S/One S/One X Scorpio Edition/PS3 Super Slim 500GB/PS4 Pro (XBL-ID: jacdelad, PSN: jacdelad84) auf 60" 4k/3D LG
      OnePlus 6 256GB Midnight Black
      http://jacdelad.bplaced.net
    • Update auf Version 0.9.9:
      Nach dem SuperGAU mit meinem aktuellen Projekt habe ich die Arbeiten daran wieder aufgenommen und baue das ganze Ding wieder zusammen. Dabei ist mir noch ein kleiner Fehler in der WinINet.inc aufgefallen (betrifft die Funktion "Disconnect"). Update ist auf meiner Webseite verfügbar.
      XProfan-Semiprofi (XProfan X4+XPIA+LemonEd)
      Ryzen 1700X/MSI B350 PC MATE/16GB RAM@2933MHz/Radeon HD7770 OC/Creative X-Fi XTreme Music/65TB HDD+256GB Samsung 960 EVO/28" Samsung 4k
      XBox Classic/360S/One S/One X Scorpio Edition/PS3 Super Slim 500GB/PS4 Pro (XBL-ID: jacdelad, PSN: jacdelad84) auf 60" 4k/3D LG
      OnePlus 6 256GB Midnight Black
      http://jacdelad.bplaced.net
    • Update auf Version 0.9.10:
      - Fehler, der in Verbindung mit der Funktion "DeleteDirEx" und Umlauten auf UTF8-Systemen auftreten konnte, behoben
      XProfan-Semiprofi (XProfan X4+XPIA+LemonEd)
      Ryzen 1700X/MSI B350 PC MATE/16GB RAM@2933MHz/Radeon HD7770 OC/Creative X-Fi XTreme Music/65TB HDD+256GB Samsung 960 EVO/28" Samsung 4k
      XBox Classic/360S/One S/One X Scorpio Edition/PS3 Super Slim 500GB/PS4 Pro (XBL-ID: jacdelad, PSN: jacdelad84) auf 60" 4k/3D LG
      OnePlus 6 256GB Midnight Black
      http://jacdelad.bplaced.net
    • Update auf Version 0.9.11:
      - Verbesserung von DeleteDirEx. Noch nicht getestet, ich hoffe aber, dass ich das zeitnah abschließen kann.
      XProfan-Semiprofi (XProfan X4+XPIA+LemonEd)
      Ryzen 1700X/MSI B350 PC MATE/16GB RAM@2933MHz/Radeon HD7770 OC/Creative X-Fi XTreme Music/65TB HDD+256GB Samsung 960 EVO/28" Samsung 4k
      XBox Classic/360S/One S/One X Scorpio Edition/PS3 Super Slim 500GB/PS4 Pro (XBL-ID: jacdelad, PSN: jacdelad84) auf 60" 4k/3D LG
      OnePlus 6 256GB Midnight Black
      http://jacdelad.bplaced.net
    • Michael Wodrich schrieb:

      ist da bei listdir was nicht ok?
      bei einem parameter; finde dort 2x case 2
      Jupp, das erste CaseOf soll eine 1 sein. Werde ich morgen korrigieren.
      XProfan-Semiprofi (XProfan X4+XPIA+LemonEd)
      Ryzen 1700X/MSI B350 PC MATE/16GB RAM@2933MHz/Radeon HD7770 OC/Creative X-Fi XTreme Music/65TB HDD+256GB Samsung 960 EVO/28" Samsung 4k
      XBox Classic/360S/One S/One X Scorpio Edition/PS3 Super Slim 500GB/PS4 Pro (XBL-ID: jacdelad, PSN: jacdelad84) auf 60" 4k/3D LG
      OnePlus 6 256GB Midnight Black
      http://jacdelad.bplaced.net
    • Ist korrigiert und hochgeladen. Diesen Modus der Ausgabe habe ich bisher nicht genutzt, deshalb ist es mir nicht aufgefallen. Die Funktion wurde gleich noch etwas erweitert.
      Jetzt arbeite ich an der Dokumentation und werde sobald als möglich DeleteDirEx testen.
      XProfan-Semiprofi (XProfan X4+XPIA+LemonEd)
      Ryzen 1700X/MSI B350 PC MATE/16GB RAM@2933MHz/Radeon HD7770 OC/Creative X-Fi XTreme Music/65TB HDD+256GB Samsung 960 EVO/28" Samsung 4k
      XBox Classic/360S/One S/One X Scorpio Edition/PS3 Super Slim 500GB/PS4 Pro (XBL-ID: jacdelad, PSN: jacdelad84) auf 60" 4k/3D LG
      OnePlus 6 256GB Midnight Black
      http://jacdelad.bplaced.net
    • Update auf Version 0.9.13:
      - Finaler Bugfix für DeleteDirEx. Die Funktioniert funktioniert jetzt einwandfrei.

      Wenn alles klappt brauche ich nur noch die Dokumentation fertigzustellen und Version 1.0 kann kommen.
      XProfan-Semiprofi (XProfan X4+XPIA+LemonEd)
      Ryzen 1700X/MSI B350 PC MATE/16GB RAM@2933MHz/Radeon HD7770 OC/Creative X-Fi XTreme Music/65TB HDD+256GB Samsung 960 EVO/28" Samsung 4k
      XBox Classic/360S/One S/One X Scorpio Edition/PS3 Super Slim 500GB/PS4 Pro (XBL-ID: jacdelad, PSN: jacdelad84) auf 60" 4k/3D LG
      OnePlus 6 256GB Midnight Black
      http://jacdelad.bplaced.net
    • Update auf Version 0.9.14:
      - Minimale Verbesserung für ListDir
      - Es gibt jetzt nur noch 2 Versionen. Da einige benutzte Befehle nicht schon ab XProfan 7 bzw. 10.0 gingen habe ich jetzt nur noch 2 Versionen im Paket: Eine für XProfan X2 und höher und eine ab XProfan X4. Wer wirklich noch ältere Versionen benutzt muss selbst in die Inc schauen und Hand anlegen.
      - Die Dokumentation ist fertig. Tester und Kritik erwünscht.
      XProfan-Semiprofi (XProfan X4+XPIA+LemonEd)
      Ryzen 1700X/MSI B350 PC MATE/16GB RAM@2933MHz/Radeon HD7770 OC/Creative X-Fi XTreme Music/65TB HDD+256GB Samsung 960 EVO/28" Samsung 4k
      XBox Classic/360S/One S/One X Scorpio Edition/PS3 Super Slim 500GB/PS4 Pro (XBL-ID: jacdelad, PSN: jacdelad84) auf 60" 4k/3D LG
      OnePlus 6 256GB Midnight Black
      http://jacdelad.bplaced.net
    • Update auf Version 0.9.15:
      - Code etwas aufgeräumt

      Das Paket enthält jetzt eine neue Inc: Internet.inc. Sie ist der Anfang für neue Internetfunktionen. Ich plane analog für die Downloadfunktionen der MyFTP-Include Funktionen für HTTP-Downloads bereitzustellen (Downloads mit Fortschritt, wie in XProfan, Downloads direkt in den Speicher, erweiterte Fehlerermittlung...). Wie gesagt, ist noch in Planung...Inhalt und Voraussetzungen können sich noch ändern. Bisher ist nur die Funktion Ping enthalten, die ermittelt ob eine Webseite erreichbar ist.
      XProfan-Semiprofi (XProfan X4+XPIA+LemonEd)
      Ryzen 1700X/MSI B350 PC MATE/16GB RAM@2933MHz/Radeon HD7770 OC/Creative X-Fi XTreme Music/65TB HDD+256GB Samsung 960 EVO/28" Samsung 4k
      XBox Classic/360S/One S/One X Scorpio Edition/PS3 Super Slim 500GB/PS4 Pro (XBL-ID: jacdelad, PSN: jacdelad84) auf 60" 4k/3D LG
      OnePlus 6 256GB Midnight Black
      http://jacdelad.bplaced.net
    • Update auf Version 0.9.16/0.9.15a:
      - Es ist jetzt möglich mehrere Verbindungen gleichzeitig aufzubauen.

      Mit dieser Version ist es möglich mehrere Verbindungen aufzubauen und gleichzeitig aktiv zu halten. Es gibt den neuen Befehl "SwitchTo" mit dem zwischen den Verbindungen hin- und hergewechselt werden kann. Mit "DisconnectAll" können alle aktiven Verbindungen getrennt werden. Die Befehle "Connect" und "Disconnect" wurden um einen optionalen Parameter erweitert. Dieser gibt die ID für die jeweilige Verbidung an (jede Verbindung hat ihre eigene ID). Diese Funktionalitäten sind momentan nur in der WinINetX4.inc drin, da ich zum Verwalten dynamische Arrays verwende, die erst in Xprofan X3 eingeführt wurden. Da mein Ziel ist, dass der Code in zumindest einer der Inc auch in möglichst alten Versionen funktioniert muss ich dort auf eine Liste ausweichen. Der Code folgt in der nächsten Version und beide werden Quelltexte werden synchronisiert. Die Hilfe wurde aktualisiert; die Neuerungen beziehen sich entsprechend nur auf die WinINetX4.inc.
      XProfan-Semiprofi (XProfan X4+XPIA+LemonEd)
      Ryzen 1700X/MSI B350 PC MATE/16GB RAM@2933MHz/Radeon HD7770 OC/Creative X-Fi XTreme Music/65TB HDD+256GB Samsung 960 EVO/28" Samsung 4k
      XBox Classic/360S/One S/One X Scorpio Edition/PS3 Super Slim 500GB/PS4 Pro (XBL-ID: jacdelad, PSN: jacdelad84) auf 60" 4k/3D LG
      OnePlus 6 256GB Midnight Black
      http://jacdelad.bplaced.net
    • Bei der Internet-Geschichte wird es ja die Umrechnung auf Network-Order geben.

      Da kommt dann die große Überraschung. Long und Quad werden als vorzeichenbehaftete Zahl interpretiert.
      Während man bei Long einfach zu Quadint als Variable greifen kann, geht das bei Quadint dann nicht mehr.
      Das Vorzeichen schlägt zu.

      Hatte mit Litte-Endian / Big-Endian / Network-Order gekämpft und unterschiedliche Versionen probiert.
      Selbst wenn man die Bytes einzeln mit Byte() abgreift -- das Vorzeichen schlägt zu.

      Die verschiedenen Funktionen für die Umrechnungen werden übrigens gar nicht benötigt, da das Umdrehen in beide Richtungen funktioniert.
      Man muss nur testen, ob man schon auf einem Big-Endian-PC arbeitet.

      Spoiler anzeigen


      Quellcode: Network_Order.prf

      1. Proc _xchgN // das eigentliche Umdrehen
      2. Parameters quad a, int n : Declare quad b : Declare mem c,f : Dim c,8 : Dim f,8 : c = Addr(a) : f = Addr(b) : Dec n
      3. WhileLoop 0,n : Byte f,n - &loop = Byte(c,&loop) : EndWhile : Dispose c,f : Return b
      4. EndProc
      5. Proc hton
      6. Parameters quad x, int anzBytes
      7. Declare int isLittleEndian, i, quad erg
      8. // der Abfragetrick -- bei Big-Endian steht dort $80 statt $01
      9. Declare mem y : Dim y,2 : Word y,0 = $8001 : isLittleEndian = (Byte(y,0) == 1) : Dispose y
      10. erg = x
      11. If isLittleEndian
      12. Case anzBytes = 1 : erg = x
      13. Case anzBytes = 2 : erg = _xchgN(x,2)
      14. Case anzBytes = 4 : erg = _xchgN(x,4)
      15. Case anzBytes = 8 : erg = _xchgN(x,8)
      16. EndIf
      17. Return erg
      18. EndProc
      19. // die 16- und 32-Bit Versionen der Umrechnung existieren fast überall
      20. // die 64-Bit Version ist seltener.
      21. // Wird aber alles nicht benötigt...
      22. Proc htons : Parameters quad x : Return hton(x,2) : EndProc 'short (16 bit) Host-to-network-Umwandlung
      23. Proc htonl : Parameters quad x : Return hton(x,4) : EndProc 'long (32 bit) Host-to-network-Umwandlung
      24. Proc htond : Parameters quad x : Return hton(x,8) : EndProc 'quad (64 bit) Host-to-network-Umwandlung
      25. Proc ntohs : Parameters quad x : Return hton(x,2) : EndProc 'short (16 bit) Network-to-host-Umwandlung
      26. Proc ntohl : Parameters quad x : Return hton(x,4) : EndProc 'long (32 bit) Network-to-host-Umwandlung
      27. Proc ntohd : Parameters quad x : Return hton(x,8) : EndProc 'quad (64 bit) Network-to-host-Umwandlung
      28. cls
      29. declare quad xx
      30. print " "
      31. 'xx = $1122
      32. xx = $8877 : print " start",hex$(xx)
      33. xx = hton(xx,2) : print " dann",hex$(xx)
      34. xx = hton(xx,2) : print " danach",hex$(xx)
      35. print " "
      36. 'xx = $11223344
      37. xx = $88776655 : print " start",hex$(xx)
      38. xx = hton(xx,4) : print " dann",hex$(xx)
      39. xx = hton(xx,4) : print " danach",hex$(xx)
      40. print " "
      41. 'xx = $1122334455667788
      42. xx = $8877665544332211 : print " start",hex$(xx)
      43. xx = hton(xx,8) : print " dann",hex$(xx)
      44. xx = hton(xx,8) : print " danach",hex$(xx)
      45. print " "
      46. waitkey
      47. end
      Alles anzeigen

      [IMG:https://www.imagebanana.com/s/992/2zjPF0yE.html][IMG:<a href=][IMG:https://s2.imagebanana.com/file/180310/thb/2zjPF0yE.PNG]">
      Programmieren, das spannendste Detektivspiel der Welt.

      Dieser Beitrag wurde bereits 6 mal editiert, zuletzt von Michael Wodrich ()

    • Ehrlich gesagt weiß ich gerade nicht worauf du hinaus willst. :??:
      XProfan-Semiprofi (XProfan X4+XPIA+LemonEd)
      Ryzen 1700X/MSI B350 PC MATE/16GB RAM@2933MHz/Radeon HD7770 OC/Creative X-Fi XTreme Music/65TB HDD+256GB Samsung 960 EVO/28" Samsung 4k
      XBox Classic/360S/One S/One X Scorpio Edition/PS3 Super Slim 500GB/PS4 Pro (XBL-ID: jacdelad, PSN: jacdelad84) auf 60" 4k/3D LG
      OnePlus 6 256GB Midnight Black
      http://jacdelad.bplaced.net
    • Sehr nützlich, Michael!

      @Jac de Lad: XProfan interpretiert nur Byte und Word als vorzeichenlose Ganzzahlen, alle anderen Definitionen haben das höchste bit als Vorzeichenbit. Der Bereich bei Word geht z.B. von 0 bis 32767 (=2^(8+8) Möglichkeiten), aber schon bei Long (= 4 Byte) listet XProfan Werte über 2^31 als negative Zahlen auf. Und das kann man bei Netzwerkadressen nun wirklich nicht gebrauchen, die gehen nämlich ins Positive weiter, trotz dem das 1. bit dann 1 ist.
      Hinzu kommt noch das Intel-Format, bei dem das niederwertigste Byte die Ansprechadresse der im RAM gespeicherten Zahl ist. Die Netzwerklogik verlangt aber das höchstwertige Byte zuerst - echt verwirrend das ...
    • Korrektur zu oben: Die Obergrenze von WORD, 2^(8+8)-1 ist natürlich 65535, und die werden eben auch angezeigt (peinlicher Fehler, sorry!), im Gegensatz zu LONG.

      Quellcode

      1. Cls
      2. Declare w#
      3. Dim w#,2
      4. WORD w#,0 = 2^16-1
      5. Print "\n Binär oberster WORD Wert:",WORD(w#,0)
      6. dispose w#
      7. Dim w#,4
      8. LONG w#,0 = 2^32-1
      9. Print "\n Binär oberster LONG Wert:",LONG(w#,0)
      10. dispose w#
      11. waitinput
      Alles anzeigen
    • Das ist ja ganz nett, aber was hat das mit meiner Inc zu tun? Meint ihr damit wie ich meine Quads erzeuge?
      XProfan-Semiprofi (XProfan X4+XPIA+LemonEd)
      Ryzen 1700X/MSI B350 PC MATE/16GB RAM@2933MHz/Radeon HD7770 OC/Creative X-Fi XTreme Music/65TB HDD+256GB Samsung 960 EVO/28" Samsung 4k
      XBox Classic/360S/One S/One X Scorpio Edition/PS3 Super Slim 500GB/PS4 Pro (XBL-ID: jacdelad, PSN: jacdelad84) auf 60" 4k/3D LG
      OnePlus 6 256GB Midnight Black
      http://jacdelad.bplaced.net