Arrays verbinden oder aneinander hängen! Wie?

  • Hallo!

    Ich habe insg. vier 2D-Arrays unterschiedlicher Größe. Dazu habe ich vier Checkboxen. Wenn eine Checkbox angehakt ist soll das dazugehörige Array aktiv sein. Wie kombiniere ich nun die Arrays miteinander? Sollte ich die jeweiligen Arrays zu einem neuen Array zusammenführen?

    Ich müsste ja theoretisch alle möglichen Kombinationsmöglichkeiten bestimmen, oder?

    Oder einfach ReDim und die Werte anhängen??

    Es geht um ASCII-Zeichen. Array 1 beinhaltet das Alphabet von A-Z und deren dazugehörigen Dezimalwertenz.B.: "A" = 065 oder "U" = 085, Array 2 die Numerischen Zahlen 0-9, 3. Array die Standard-Sonderzeichen wie "!(),. usw., und das 4. Array die Extendend-Zeichen.

    Wer hat nen Beispiel für mich? Danke!

    Einmal editiert, zuletzt von Morrison (5. Juli 2012 um 05:11)

  • Genau des halb nimmt man sich dann ein ich nenn es jetzt mal '3D-Array' und stellt einfach die erste Dimension um...

    [autoit]

    Dim $Array[3][25][10]

    [/autoit]

    LG
    Christoph :)

  • Wozu überhaupt Arrays?

    Zitat

    Es geht um ASCII-Zeichen. Array 1 beinhaltet das Alphabet von A-Z und deren dazugehörigen Dezimalwertenz.B.: "A" = 065 oder "U" = 085, Array 2 die Numerischen Zahlen 0-9, 3. Array die Standard-Sonderzeichen wie "!(),. usw., und das 4. Array die Extendend-Zeichen.


    per einfacher Funktion ist das in 3-4 Zeilen abgehandelt ohne Array, nur per

    [autoit]

    asc() ascw()
    ;bzw
    chr() chrw()

    [/autoit]
  • OK, ich hab mir ne Funktion gebastelt, mit ReDim!

    So siehts aus:

    Spoiler anzeigen
    [autoit]

    Func _checkZeichen() ; ZeichenArray setzen
    $sColl = 0
    $cZeichen = 0
    Global $aZeichen[2][1] ;Array für gewählte Zeichen
    If $chkAlpha = 1 Then ;wenn Checkbox für Alphabet gesetzt
    $sColl = $sColl + 1
    $cZeichen = $cZeichen + UBound($aAlpha, 2)
    $cCount = 0 ;Counter für altes Array
    If UBound($aZeichen, 2) = 1 Then ;Wenn keine Daten im neuen Array
    $start = UBound($aZeichen, 2) - 1 ;Counter für neues Array
    Else ; Falls Daten im Array
    $start = UBound($aZeichen, 2) ;;Counter für neues Array
    EndIf
    ReDim $aZeichen[2][$start + UBound($aAlpha, 2)] ;Neues Array reDimensionieren
    For $i = $start To $start + UBound($aAlpha, 2) - 1 ;neues Array befüllen
    $aZeichen[0][$i] = $aAlpha[0][$cCount]
    $aZeichen[1][$i] = $aAlpha[1][$cCount]
    $cCount = $cCount + 1
    Next
    EndIf
    If $chkNumeric = 1 Then
    $sColl = $sColl + 3
    $cZeichen = $cZeichen + UBound($aNumeric, 2)
    $cCount = 0
    If UBound($aZeichen, 2) = 1 Then
    $start = UBound($aZeichen, 2) - 1
    Else
    $start = UBound($aZeichen, 2)
    EndIf
    ReDim $aZeichen[2][$start + UBound($aNumeric, 2)]
    For $i = $start To $start + UBound($aNumeric, 2) - 1
    $aZeichen[0][$i] = $aNumeric[0][$cCount]
    $aZeichen[1][$i] = $aNumeric[1][$cCount]
    $cCount = $cCount + 1
    Next
    EndIf
    If $chkStandard = 1 Then
    $sColl = $sColl + 5
    $cZeichen = $cZeichen + UBound($aStandard, 2)
    $cCount = 0
    If UBound($aZeichen, 2) = 1 Then
    $start = UBound($aZeichen, 2) - 1
    Else
    $start = UBound($aZeichen, 2)
    EndIf
    ReDim $aZeichen[2][$start + UBound($aStandard, 2)]
    For $i = $start To $start + UBound($aStandard, 2) - 1
    $aZeichen[0][$i] = $aStandard[0][$cCount]
    $aZeichen[1][$i] = $aStandard[1][$cCount]
    $cCount = $cCount + 1
    Next
    EndIf
    If $chkExtendend = 1 Then
    $sColl = $sColl + 10
    $cZeichen = $cZeichen + UBound($aExtendend, 2)
    $cCount = 0
    If UBound($aZeichen, 2) = 1 Then
    $start = UBound($aZeichen, 2) - 1
    Else
    $start = UBound($aZeichen, 2)
    EndIf
    ReDim $aZeichen[2][$start + UBound($aExtendend, 2)]
    For $i = $start To $start + UBound($aExtendend, 2) - 1
    $aZeichen[0][$i] = $aExtendend[0][$cCount]
    $aZeichen[1][$i] = $aExtendend[1][$cCount]
    $cCount = $cCount + 1
    Next
    EndIf
    Return $aZeichen
    EndFunc

    [/autoit]

    Danke an alle!!