For...to...Next

  • Palim Palim,

    ich wollte mal wieder ein script schreiben zum verschlüsseln von Strings....aber ich habe ein Problem mit den Schleifen -.-

    Hier mal mein Code-Schnipsel...

    Spoiler anzeigen
    [autoit]

    $PW="aaa"
    $string="aaabbb"

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

    $string_len=StringToASCIIArray($string)
    Global $ergebnis[1]
    $pw_len=StringToASCIIArray($PW)
    $u=0
    Do
    for $i=0 to UBound($pw_len)
    $crypt_asc=$string_len[$u]+$pw_len[$i]
    _ArrayAdd($ergebnis, $crypt_asc)
    $u0=+ 1
    Next

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

    Until UBound($ergebnis) = UBound($string_len)

    [/autoit]

    Ich find meinen Fehler gerade nich wirklich. Wäre scön wenn mir einer die Augen öffnen könnte xD

    Mfg
    monkey

    Monkey - die finale Potenz von göttlich!
    Sloganizer

    Einmal editiert, zuletzt von monkey (31. Dezember 2008 um 15:08)

  • Ist vieleicht nur ein Rechtschreibfehler aber was macht diese Zeile genau?

    [autoit]

    $u0=+ 1

    [/autoit]
  • Mhm... ich steh hier gerade en bisschen aufm schlauch .... oO

    Ich weiss das sollte nich so schwer zu verstehen sein aber irgendwie is gerade die luft raus...

    Mfg
    monkey

    Monkey - die finale Potenz von göttlich!
    Sloganizer

  • Bitte, mit Erkärungen:

    [autoit]

    #include <Array.au3> ; zur Anzeige
    $PW="aaa"
    $string="aaabbb"

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

    $string_len=StringToASCIIArray($string)
    Global $ergebnis[UBound($string_len)] ; Ergebnis-Array gleich groß wie String-Array

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

    $pw_len=StringToASCIIArray($PW) ; Passwort-Array

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

    $STRING_LAST_INDEX = UBound($string_len)-1 ; letzter Index vom String
    $PW_LAST_INDEX = UBound($pw_len)-1 ; letzter Index vom Passwort

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

    $u=0 ; Zähler für StringIndex
    Do
    for $i=0 to $PW_LAST_INDEX ; von 0 bis letzter PW-index
    $crypt_asc=$string_len[$u]+$pw_len[$i] ; "verschlüssel"
    $ergebnis[$u] = $crypt_asc ; ins ErgebnisArray
    $u += 1 ; Danach den aktuellen String-IUndex erhöhen
    If $u > $STRING_LAST_INDEX Then ExitLoop ; wenn StringIndex größer als maximaler StringIndex, Schleife beenden
    Next
    Until $u > $STRING_LAST_INDEX ; Schleife so lange fortsetzen, bis StringIndex größer als Maximaler String Index ist.
    _ArrayDisplay($ergebnis) ; anzeigen

    [/autoit]
  • @progandy, deine Lösung geht aber nicht, wenn der $PW String länger ist als der $String-String.

    Ich hab mal was probiert, weil mir langweilig was ...

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>

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

    $PW = "aaabbbccc"
    $string = "aaabbb"

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

    $pw_len = StringToASCIIArray($PW)
    $string_len = StringToASCIIArray($string)

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

    If UBound($pw_len) > UBound($string_len) Then
    Global $ergebnis[UBound($pw_len)]
    For $i = 0 To UBound($string_len) - 1
    $ergebnis[$i] = $pw_len[$i] + $string_len[$i]
    Next
    For $i = UBound($string_len) To UBound($pw_len) - 1
    $ergebnis[$i] = $pw_len[$i]
    Next
    Else
    Global $ergebnis[UBound($string_len)]
    For $i = 0 To UBound($pw_len) - 1
    $ergebnis[$i] = $pw_len[$i] + $string_len[$i]
    Next
    For $i = UBound($pw_len) To UBound($string_len) - 1
    $ergebnis[$i] = $string_len[$i]
    Next
    EndIf
    _ArrayDisplay($ergebnis)

    [/autoit]
  • @progandy, deine Lösung geht aber nicht, wenn der $PW String länger ist als der $String-String.
    [/autoit][/spoiler]


    Doch, das geht mit meiner Lösung auch. Die übrigen Passwort-Zeichen werden einfach nicht genutzt ;)