Array: If-Abfrage einer Zeile

  • Ich möchte ein Array kontrollieren, ob in diesem schon was drinnen steht, bzw. eine einzelne Spalte (Das Array ist 2D)
    Wie stelle ich das am besten an? Mit dem Bsp. aus BugFix's Tut kann ich leider nicht viel mit anfangen:

    [autoit]

    Local $array[1] ; Array hat zum Programmstart 1 Element

    $newData = GUICtrlRead($Input)
    If $newData <> '' Then ; prüfen ob nicht leer
    ; der erste Eintrag soll in das bestehende 1. Array-Element eingetragen werden, z.Zt. das letzte
    ; für weiter Einträge muß das Array vorher um ein Element vergrößert werden
    If $array[Ubound($array)-1] <> '' Then ; ist das letzte Element NICHT leer (dann ist es NICHT das erste)
    ReDim $array[Ubound($array)+1] ; Arraygröße neu: 1 größer als aktuelle Größe Ubound($array)
    EndIf
    $array[Ubound($array)-1] = $newData ; Daten in das letzte Element schreiben, im ersten Durchlauf ist dies das erste.
    EndIf

    [/autoit]

    Einmal editiert, zuletzt von Scritch (6. Mai 2011 um 11:46)

  • Ohne eigenden Code von dir können wir dir glaub ih nicht viel helfen, da in dem Beispiel aus BugFixs Tutorial eig. alles drin steht.

    Du musst nur in einer For Schleife (Da du ja alle überprüfen willst) alle Elemente (von 0 bis (Ubound -1)) überprüfen und in dieser For Schleife nochmal eine For schleife um die 2d Indexe zu überprüfen.

    [autoit]

    ;; Beispiel:
    For $i = 0 to Ubound ($aArray)-1
    For $t = 0 to Ubound ($aArray, 2)-1
    If $aArray[$i][$t] = "" Then ;; Wenn das Array leer ist dann ****

    [/autoit][autoit][/autoit][autoit]

    Endif
    Next
    Next

    [/autoit]
  • Ok, also so?!:

    [autoit]

    Dim $csv[2][4]
    for $c = 0 to UBound($csv) - 1
    for $d = 0 to ubound($csv) - 1
    If $csv[$c][$d] = '' Then
    for $b = 0 to ubound($asoftware) - 1
    $csv[$b][0] = $asoftware[$b]
    ReDim $csv[ubound($asoftware) + 1][4]
    _ArrayDisplay($csv)
    Next
    EndIf
    Next
    Next

    [/autoit]

    Edit: Funktioniert nicht :( Narf...

    Einmal editiert, zuletzt von Scritch (5. Mai 2011 um 17:47)

  • Ich kenn $asoftware nicht, aber guck mal in Zeile 3, da machst du bis ubound ($csv)-1, obwohl du Ubound ($csv, 2) -1 machen müsstest, da du ja die Anzahl der 2ten Indexe haben möchtest.

    • Offizieller Beitrag

    Vielleicht solltest du einfach mal mein 2D-Array nachvollziehen... :whistling:
    Und vor allem die Syntax nachlesen! In der äußeren Schleife verwendest du den Ubound für die Zeilen, aber in der inneren Schleife mußt du den Ubound(Array,2) verwenden.
    Steht aber auch genau so in meinem Tut, das du ja bereits gelesen hast.. :wacko: