SizeOf() mit Hash_Array

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

    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.

    • SizeOf() mit Hash_Array

      Hallo,
      warum gibt der folgende Quelltext "4" aus, müsste es nicht -2 sein?

      Quellcode

      1. declare p$, hash test[]
      2. cls
      3. p$="Problem"
      4. Print SizeOf(test[p$])
      5. waitinput
      Oder anders gefragt, wie kriege ich raus ob das Element p$ existiert?

      Nachtrag: Sobald irgendein beliebiges Element angelegt ist scheint es zu funktionieren. Aber auch nicht immer. Manchmal kommt bei der SizeOf-Anfrage ein Absturz mit "Dieses Element existiert nicht".
      XProfan-Semiprofi (XProfan X4a+XPIA+LemonEd)
      Ryzen 1700X/MSI B350 PC MATE/16GB RAM@2933MHz/Radeon HD7770 OC/Creative X-Fi XTreme Music/90TB HDD+256GB Samsung 960 EVO/28" Samsung 4k
      TerraMaster F4-420 mit 16TB
      XBox Classic/360S/One S/One X Scorpio Edition/PS3 Super Slim 500GB/PS4 Pro (XBL-ID: jacdelad, PSN: jacdelad84)
      OnePlus 6 8GB/256GB
      jacdelad.bplaced.net

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

    • Jac de Lad schrieb:

      Oder anders gefragt, wie kriege ich raus ob das Element p$ existiert?
      Das Sicherste wäre, durch die Hash-Tabelle zu iterieren.

      Quellcode

      1. eclare String key, value, p, hash test[]
      2. Declare p$
      3. p = "Problem"
      4. cls
      5. test[p] = "*" ' Bei Bedarf auskommentieren, damit es nicht existiert
      6. test["Vorname"] = "Hans"
      7. test["Name"] = "Mustermann"
      8. test["Ort"] = "Saarbrücken"
      9. test["Strasse"] = "Triererstraße"
      10. ForEach test[], key, value
      11. If key = p
      12. Print key, value
      13. Else
      14. Print ""
      15. EndIf
      16. EndFor
      17. waitinput
      Alles anzeigen

    • @'p. specht@'H.Brill': Ja das geht beides, aber das erste ist schon ziemlich ungewöhnlich und zweite Beispiel macht mein Programm wieder langsam.

      Laut Hilfe müsste meine Version ja auch gehen, bzw. sollte es genauso gemacht werden.
      XProfan-Semiprofi (XProfan X4a+XPIA+LemonEd)
      Ryzen 1700X/MSI B350 PC MATE/16GB RAM@2933MHz/Radeon HD7770 OC/Creative X-Fi XTreme Music/90TB HDD+256GB Samsung 960 EVO/28" Samsung 4k
      TerraMaster F4-420 mit 16TB
      XBox Classic/360S/One S/One X Scorpio Edition/PS3 Super Slim 500GB/PS4 Pro (XBL-ID: jacdelad, PSN: jacdelad84)
      OnePlus 6 8GB/256GB
      jacdelad.bplaced.net
    • Das Problem liegt wohl daran, daß du keine Einträge im Hash-Array hast.
      Das hat Roland wohl so nicht berücksichtigt.
      Wenn du ein

      Quellcode

      1. SetSize test[], 1
      vor deine SizeOf() - Abfrage machst, funktioniert es.
      Aber warum in aller Welt brauchst du ein Hash-Array,
      das du nicht füllst ? Dein Testcode oben ist ja ziemlich
      sinnlos.

      Also bei mir funktioniert das mit einem gefüllten Array,
      auch in einer WhileLoop Schleife von 100 Durchläufen.
      Kein einziger Absturz.

      PS: Wieviel Einträge hast du denn, daß es zu langsam ist ?
    • 1170 und mehr. Aber SetSize könnte ja erstmal ein funktionierender Workaround sein. Ich probiere es aus.
      XProfan-Semiprofi (XProfan X4a+XPIA+LemonEd)
      Ryzen 1700X/MSI B350 PC MATE/16GB RAM@2933MHz/Radeon HD7770 OC/Creative X-Fi XTreme Music/90TB HDD+256GB Samsung 960 EVO/28" Samsung 4k
      TerraMaster F4-420 mit 16TB
      XBox Classic/360S/One S/One X Scorpio Edition/PS3 Super Slim 500GB/PS4 Pro (XBL-ID: jacdelad, PSN: jacdelad84)
      OnePlus 6 8GB/256GB
      jacdelad.bplaced.net
    • Klappt nicht immer.
      XProfan-Semiprofi (XProfan X4a+XPIA+LemonEd)
      Ryzen 1700X/MSI B350 PC MATE/16GB RAM@2933MHz/Radeon HD7770 OC/Creative X-Fi XTreme Music/90TB HDD+256GB Samsung 960 EVO/28" Samsung 4k
      TerraMaster F4-420 mit 16TB
      XBox Classic/360S/One S/One X Scorpio Edition/PS3 Super Slim 500GB/PS4 Pro (XBL-ID: jacdelad, PSN: jacdelad84)
      OnePlus 6 8GB/256GB
      jacdelad.bplaced.net
    • @RGH: Ist das jetzt ein Bug oder sehe ich was falsch. Mit wilden Konstruktionen die irgendwelche Fehler abrufen komme ich auch nicht wirklich weiter und es ist sehr unschön.
      XProfan-Semiprofi (XProfan X4a+XPIA+LemonEd)
      Ryzen 1700X/MSI B350 PC MATE/16GB RAM@2933MHz/Radeon HD7770 OC/Creative X-Fi XTreme Music/90TB HDD+256GB Samsung 960 EVO/28" Samsung 4k
      TerraMaster F4-420 mit 16TB
      XBox Classic/360S/One S/One X Scorpio Edition/PS3 Super Slim 500GB/PS4 Pro (XBL-ID: jacdelad, PSN: jacdelad84)
      OnePlus 6 8GB/256GB
      jacdelad.bplaced.net
    • Hallo Roland, ist eventuell schon was rausgekommen?
      XProfan-Semiprofi (XProfan X4a+XPIA+LemonEd)
      Ryzen 1700X/MSI B350 PC MATE/16GB RAM@2933MHz/Radeon HD7770 OC/Creative X-Fi XTreme Music/90TB HDD+256GB Samsung 960 EVO/28" Samsung 4k
      TerraMaster F4-420 mit 16TB
      XBox Classic/360S/One S/One X Scorpio Edition/PS3 Super Slim 500GB/PS4 Pro (XBL-ID: jacdelad, PSN: jacdelad84)
      OnePlus 6 8GB/256GB
      jacdelad.bplaced.net
    • Hab Roland kontaktiert, aber leider mich keine Antwort erhalten.
      XProfan-Semiprofi (XProfan X4a+XPIA+LemonEd)
      Ryzen 1700X/MSI B350 PC MATE/16GB RAM@2933MHz/Radeon HD7770 OC/Creative X-Fi XTreme Music/90TB HDD+256GB Samsung 960 EVO/28" Samsung 4k
      TerraMaster F4-420 mit 16TB
      XBox Classic/360S/One S/One X Scorpio Edition/PS3 Super Slim 500GB/PS4 Pro (XBL-ID: jacdelad, PSN: jacdelad84)
      OnePlus 6 8GB/256GB
      jacdelad.bplaced.net
    • Letzter Versuch: ROLAND!!! Hast du was für mich?
      XProfan-Semiprofi (XProfan X4a+XPIA+LemonEd)
      Ryzen 1700X/MSI B350 PC MATE/16GB RAM@2933MHz/Radeon HD7770 OC/Creative X-Fi XTreme Music/90TB HDD+256GB Samsung 960 EVO/28" Samsung 4k
      TerraMaster F4-420 mit 16TB
      XBox Classic/360S/One S/One X Scorpio Edition/PS3 Super Slim 500GB/PS4 Pro (XBL-ID: jacdelad, PSN: jacdelad84)
      OnePlus 6 8GB/256GB
      jacdelad.bplaced.net
    • Nein, ich hatte noch keine Gelegenheit, da tätig zu werden. Im Moment bin ich privat sehr gefordert.

      Gruß
      Roland
      (Intel Duo E8400 3,0 GHz / 4 GB RAM / 250 GB HDD / ATI Radeon HD4770 512 MB / Windows Vista - ausgemustert zum Verkauf)
      AMD Athlon II X2 2,9 GHz / 8 GB RAM / 500 + 1000 GB HDD / ATI Radeon 3000 (onboard) / Windows 10(64) - XProfan X4


      http://www.xprofan.de