Schreiben in ein Array in einer Map

  • Hallo!

    Kennt jemand hierfür eine halbwegs "elegante" Möglichkeit?

    Vielen Dank!

    E

  • Nein mir ist keine Funktionalität bekannt um per Direktzugriff die Werte zu ändern.
    Ich stand bei meinerJSON-UDF vor genau der selben Problematik, weswegen ich daher extra eine Funktion hierfür geschrieben habe.

    Das ganze sieht in dem Fall dann so aus:

  • Genau das selbe hatte ich auch (bei mir waren es Vertices = Array[double] in einer Geometry = Map[Vertices] in einer Liste = Array[Geometry]). Man bekommt mit der Klammernotation nur Lesezugriff, wenn man etwas schreiben will führt kein Weg an einer Wrapperfunktion (die nur dafür da ist "ByRef" verwenden zu können) vorbei.

    Wenn man überall Maps verwendet (und Arrays komplett durch Maps ausdrückt) klappt es, wobei ich keine Performancetests von "2d, 3d, Nd, verschachtelte Map vs 2d, 3d, Nd ByRef" gemacht habe. Für große Maps ist das vermutlich sehr langsam (das hatten wir mal ausprobiert. "große" Maps (1000+ elemente, ich weiß die genaue Zahl nicht mehr) werden extrem langsam), und für kleine wird es keinen großen Unterschied machen.

    M

  • Vielen Dank für die Antworten!

    Array als Map`s abzubilden muss ich mir definitiv mal ansehen!

    Für ein paar Fälle kann ich das Array als Struct anlegen und schreibe dann via DllStructSetData.

    Für den Rest eine Helperfunktion wie in JSON, aber glücklicherweise hab ich nur 2 dimensionale Arrays!