Array Teile löschen // GUIFenster anpassen

  • Hey Leute, ich hab gleich mal 2 Fragen an euch

    1. Ich denke diese hier ist die einfachere, wie mache ich es dass die GUI anpassbar ist? Also dass der User die Größe bestimmen kann, so wie man es von Windows Fenstern gewohnt ist?

    2. Ich nutze die Diagramm UDF von peethebee und hab hier n Array das er auslesen soll und diese Werte verwenden.
    Das problem ist nur dass er nur Werte einlesen soll die auch erwünscht sind, und nicht alle
    Beispiel:
    Ich hab hier diesen Code:

    [autoit]

    Dim $aZeile[7] ], $values[7]
    $aZeile[0] = "1|1.2.2009|21:14|21.1|20|6.5|7|0||0|1|||0|4|||"
    $aZeile[1] = "1|2.10.2009|16:36|4|5|6|7|9|10||11|12|13|14|15|16||"
    $aZeile[2] = "5|2|3|4|5|6|7|9|10|8|12|13|14||15|16|17|18"
    $aZeile[3] = "1|5.10.2009|13:25|4|5|6.2|7|9|10||11|12|13|14|15|16||"
    $aZeile[4] = "1|11.12.2009|12:01|3|4|5|6|17||119|20|21|22|23|24|25||"
    $aZeile[5] = "2|15.1.2009|14:16|13|5|11|10|9||7|6|5|4|3|2|Test||"
    $aZeile[6] = "3|15.2.200|00:13|23|6|7|6.0|2||0|||0|31|126|||"

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

    For $i = 0 To Ubound($aZeile)-1
    $aArr = StringSplit($aZeile[$i],"|")
    _ArraySort( $aZeile)
    ;~ _ArrayDisplay($aZeile)
    If Not @error And $aArr[1] = "1" Then $short_names[$i] = $aArr[2]
    If Not @error And $aArr[1] = "1" Then $values[$i] = $aArr[6]

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

    Next

    [/autoit]

    Will aber letztendlich nur die Werte haben bei denen das Array eine 1 an 1. Stelle trägt und nicht auch noch die von 2, 3 und 5. Momentan sortiert er das Array und zeichnet erfolgreich das Diagramm, jedoch werden auch die anderen (2,3,5er) angezeigt, jedoch nicht eingezeichnet (Y- Achse = 0, X = entspr. Wert)
    Vielleicht kann mir ja jemand von euch helfen, danke im Voraus

    Einmal editiert, zuletzt von Black Viper (3. Juni 2010 um 23:43)

  • Zu 2.

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>

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

    Global $aZeile[7], $values[1], $short_names[1], $iCount

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

    $aZeile[0] = "1|1.2.2009|21:14|21.1|20|6.5|7|0||0|1|||0|4|||"
    $aZeile[1] = "1|2.10.2009|16:36|4|5|6|7|9|10||11|12|13|14|15|16||"
    $aZeile[2] = "5|2|3|4|5|6|7|9|10|8|12|13|14||15|16|17|18"
    $aZeile[3] = "1|5.10.2009|13:25|4|5|6.2|7|9|10||11|12|13|14|15|16||"
    $aZeile[4] = "1|11.12.2009|12:01|3|4|5|6|17||119|20|21|22|23|24|25||"
    $aZeile[5] = "2|15.1.2009|14:16|13|5|11|10|9||7|6|5|4|3|2|Test||"
    $aZeile[6] = "3|15.2.200|00:13|23|6|7|6.0|2||0|||0|31|126|||"

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

    _ArraySort($aZeile)
    _ArrayDisplay($aZeile)

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

    For $i = 0 To Ubound($aZeile) - 1
    $aArr = StringSplit($aZeile[$i], "|")
    If $aArr[1] = "1" Then
    $iCount += 1
    ReDim $short_names[$iCount]
    ReDim $values[$iCount]
    $short_names[$i] = $aArr[2]
    $values[$i] = $aArr[6]
    EndIf
    Next

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

    _ArrayDisplay($short_names)
    _ArrayDisplay($values)

    [/autoit]
  • Danke, funktioniert 1A. Habs gerade mit dem "Plotter" getestet und ist genauso wie ich mir das vorstelle. Mal mit den Befehlen befassen.