Fragen zur Arrays

  • Hallo,


    ich habe hier eine Denksportaufgabe, die ich einfach mal in die Runde werfen möchte.


    Meine Intention ist es, innerhalb eines LS-Agents eindimensionale arrays zu deklarieren, auf die ich nachher per arraygetindex abfragen kann. Nun möchte ich praktisch je nach Benutzervoreinstellungen beliebig viele arrays parallel laufen lassen.


    Mit anderen Worten ist es also so: Wenn sich durch die Voreinstellungen ergibt, dass im Quellcode drei arrays benötigt werden, sollen die auch angelegt werden. Also


    dim array1 as string
    dim array2 as string
    dim array3 as string...


    Wenn es notwendig ist 20 zu deklarieren müssen die eben erstellt werden.


    Ist sowas möglich? Kann man die Arrays hinterher auch wieder abfragen? Also gibt es sowas wie getitemvalue("arrayname")(n)?


    Ich hoffe das ist einigermassen verständlich...?


    Gruss, Bernd

    • Offizieller Beitrag

    mit einer Laufvariablen geht es nicht.


    Aber haben die Arrays alle gleiche Dimensionen, dann mach ein mehrdimensionales Array daraus.


    Schau Dir auch mal eigene Typen an.


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

    • Offizieller Beitrag

    Da hast Du schon 4 Möglichkeiten:
    - Array in Array
    - Listen
    - eigene Typen
    - mehrdimensionale Arrays


    Was jetzt besser ist hängt von den genauen Anforderungen ab.


    Gruß
    Dirk

  • Hallo,


    jetzt bin ich gerade noch einmal bei dieser Sache. Wie bekomme ich einen Type hin, der Lists enthält und den ich dann als Array deklarieren kann?


    Habe das so probiert:


    Code
    Type xyList
    	listAllXY As Variant
    End Type
    
    
    Dim arAllValues() as xyList


    Wie mache ich denn jetzt aus dem Variant eine Liste? Denn der variant ist laut Hilfe der Umweg zu einer Liste im Type.


    Gruss, Bernd

    • Offizieller Beitrag
    Code
    Type xyList    listAllXY List As VariantEnd TypeDim arAllValues() as xyList


    bin mir aber nicht sicher, ob Du dies so willst. Bin mir eigentllcih Sicher, dass DU es anders herum willst.


    Code
    Type xyList
        listAllXY() As String    'eigentlich wolltes Du ein String-Array '
    End Type
    
    
    Dim arAllValues List as xyList


    Gruß
    Dirk

  • Ich hatte die erste Variante probiert, und zwar mit Long. Ich brauche ein Type, mit dem ich Name-Wert Paare speichern kann. Und zwar bieleibig vielen Listen, die eben Namen (ListTags) und Werte (Long) enthalten.


    Die erste Variante ist allerdings von der Validierung nicht angenommen worden. Die Hilfe sagt, dass ein Type nur feste Arrays enthalten darf. Über den Variant können aber auch dynamische Arrays und Listen eim Typ eingebaut werden.


    Könnte es so gehen:?



    So ist jedem Variant eine Liste ohne Inhalt zugeordnet. Oder ist das schlecht?

    • Offizieller Beitrag

    ok Du willst Namen-Wert-Paare und dies dynamisch. Dann löse ich von dem Array.


    Code
    Type MyListType
        Name As String
        Wert as Variant
    End Type
    
    
    Dim zerolist List as MyListType


    Damit hast Du beliebig viele Name-Wert-Paare.


    Und dies brauchst Du jetzt noch beliebig (dynamisch) oft?


    Gruß
    Dirk

    • Offizieller Beitrag

    ich setze es dann mal auf erledigt :(


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein