Announcement

Collapse
No announcement yet.

Mehrdimensionalen Array grösse ermitteln

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Mehrdimensionalen Array grösse ermitteln

    Hallo,

    Ich habe ein ziemlich banales Problem. Wie man einen eindimensionalen Array ausliest ist mir klar.
    Code:
    MyArray.Count
    Nun meine Frage: Wie kann ich in einem zweidimensionalen Array die Anzahl der Inhalte eines Bereiches auslesen. ?
    Gemeint ist es ungefähr so
    Code:
    MyArray(2,?).Count
    Dann wüsste ich gerne wieviele Elemente beim "?" sind.

    danke schon mal.

  • #2
    Array hat Length und GetUpperBound
    ArrayList hat Count
    http://openbook.galileocomputing.de/...aysDatenfelder
    Christian

    Comment


    • #3
      Auf dieser Webside wahr ich auch schon. nur das "GetUpperBound" bringt mir nichts, denn der Array ist nicht überal komplet gefüllt. "GetUpperBound" gibt mir lediglich die Grösse zurück mit der ich den array definiert habe.

      "Length" gibt mir soweit ich weis nur den gesamten Inhalt zurück. Also alle Zeichen die enthalten sind, da zählen auch die "Nothing"dazu.

      Ich habs zum beispiel so:
      Code:
      Public myArray(20, 20) As String
      Public strSecoundLevel1() As String = {"SecTest01", "SecTest02", "SecTest03", "SecTest04", "SecTest05", "SecTest06", "SecTest07", "SecTest08", "SecTest09", "SecTest10"}
      Public strSecoundLevel2() As String = {"SecTest12", "SecTest13", "SecTest14", "SecTest15", "SecTest16", "SecTest17", "SecTest18", "SecTest19", "SecTest110"}
      Public strSecoundLevel3() As String = {"SecTest23", "SecTest24", "SecTest25", "SecTest26", "SecTest27", "SecTest28", "SecTest29", "SecTest210"}
      
              For j As Integer = 0 To (strSecoundLevel1.Count - 1)
                  myArray(0, j) = strSecoundLevel1(j)
              Next
              For k As Integer = 0 To (strSecoundLevel2.Count - 1)
                  myArray(1, k) = strSecoundLevel2(k)
              Next
              For l As Integer = 0 To (strSecoundLevel3.Count - 1)
                  myArray(2, l) = strSecoundLevel3(l)
              Next
      Somit habe ich ja nur die ersten drei felder gefüllt und der Rest ist noch leeer.

      Comment


      • #4
        Woher hast du count?

        Dann musst du beispielsweise das Array nach dem anlegen mit -1 füllen. Dann kannst du das Array durchlaufen und feststellen wie weit eine Dimension gefüllt ist
        Christian

        Comment


        • #5
          Ähm, ich habe das Problem wahrscheinlich nur halb verstanden. Aber es scheint mir als willst du keine Liste fixer Länge sondern füllst sie dynamisch und möchtest den aktuellen ~Füllstand~ haben. Das ist eigentlich gegen die Natur einen Arrays und ein Array wird dir wenig helfen diesen Füllstand herauszubekommen. Hört sich eher an als bräuchtest du eine generische Liste. Für mehrere Dimensionen kann man die dann schlachten.

          Comment


          • #6
            Originally posted by Christian Marquardt View Post
            Woher hast du count?

            Dann musst du beispielsweise das Array nach dem anlegen mit -1 füllen. Dann kannst du das Array durchlaufen und feststellen wie weit eine Dimension gefüllt ist
            Ich habe das Count aus der Länge der eindimensionalen Arrays. Und diese eindimensionalen Arrays werden dann in den zweidimensionalen Array gefüllt.

            Ich kann natürlich einen Loop laufen lassen um herauszufinden wie gross die einzelnen sektoren sind nur irgendwoher muss ich ja wisse wieviel mal. und wen ich es einfach tausendmal durchlaufen lasse fällt der loop in ein leeres feld und gibt mir ein Error

            Comment


            • #7
              M.E. hat ein Array nicht die Eigenschaft Count
              Christian

              Comment


              • #8
                Bei einem eindimensionalen Array geht es aber. Nur bei einem zweidimensionalen nicht.

                Comment


                • #9
                  Hab jetzt endlich eine Lösung gefunden.

                  Ist nicht sehr elegant aber funktioniert.
                  Code:
                          Dim j As Integer
                          For i As Integer = 0 To 20
                  
                              If myArray(2, i) <> "" Then
                                  j = j + 1
                              End If
                  
                          Next
                  
                          lblAnzeige.Text = Cstr(j)
                  Und somit kann ich von jedem Teil des 2-Dimensionalen Arrays die Grösse ermitteln.

                  Comment

                  Working...
                  X