While- Schleife will nicht! Warum ?

  • Hi, ich hab gerade ein bisschen mit Autoit gearbeitet, und schon stehe ich an und es geht aufgrund einer, in meinen Augen, völlig gültigen While- Schleife nicht weiter!
    Bin für jede Hilfe sehr dankbar.

    Spoiler anzeigen
    [autoit]


    ; by ECC

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

    $Loop = 0

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

    While $Loop <= 10

    $acces = IniRead("C:\ecc\defcon loader reloaded\common\acces.ini","acces","exec","")

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

    if $acces = 1 then
    $var = IniRead("C:\ecc\DEFCON Loader reloaded\common\Dir.INI","Dir","down","")
    $vare = IniRead("C:\ecc\DEFCON Loader reloaded\common\Dir.INI","dir","back","")

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

    $var1=$var+"\*.*"
    $vare1=$vare+"\*.*"

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

    DirCopy ( $var,$vare,1)

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

    ElseIf $acces = 2 Then
    $var = IniRead("C:\ecc\DEFCON Loader reloaded\common\Dir.INI","Dir","down","")
    $vare = IniRead("C:\ecc\DEFCON Loader reloaded\common\Dir.INI","dateback","dir","")

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

    $var1=$var+"\*.*"
    $vare1=$vare+"\*.*"

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

    DirCopy ( $var,$vare,1)

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

    ElseIf $acces = 3 Then
    $var = IniRead("C:\ecc\DEFCON Loader reloaded\common\Dir.INI","Dir","down","")
    $vare = IniRead("C:\ecc\DEFCON Loader reloaded\common\Dir.INI","Dir","back","")

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

    DirRemove ( $var,1)

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

    ElseIf $acces = 4 Then
    $var = IniRead("C:\ecc\DEFCON Loader reloaded\common\Dir.INI","Dir","down","")
    $vare = IniRead("C:\ecc\DEFCON Loader reloaded\common\Dir.INI","Dir","back","")

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

    DirRemove ( $vare,1)

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

    ElseIf $acces = 5 Then
    InetGet ( "HTTP://ecccorp.ec.funpic.de/loaderupd.exe", "C:\ecc\defcon loader reloaded\updates\loaderupd.exe" , 1, 0)

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

    sleep(300)

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

    IniWrite("C:\ecc\defcon loader reloaded\common\upd.ini","state","upd","1")

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

    ElseIf $acces = 6 Then
    ExitLoop

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

    Else
    $var = IniRead("C:\ecc\DEFCON Loader reloaded\common\Dir.INI","Dir","down","")
    $wir = DirGetSize($var)
    $wird = $wir/1024
    $wird1 = $wird/1024
    $wird2 = Round ( $wird1 )
    IniWrite("C:\ecc\DEFCON Loader reloaded\common\Dir.INI","Dir","downsize",$wird2)

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

    $vare = IniRead("C:\ecc\DEFCON Loader reloaded\common\Dir.INI","Dir","back","")
    $wire = DirGetSize($vare)
    $wirde = $wire/1024
    $wirde1 = $wirde/1024
    $wirde2 = Round ( $wirde1 )
    IniWrite("C:\ecc\DEFCON Loader reloaded\common\Dir.INI","Dir","backsize",$wirde2)

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

    sleep (500)

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

    WEnd
    Exit

    [/autoit]

    Skript ist sehr Chaotisch, weil das andere Programm mit dem dieses Skript arbeit es so erfordert.

    BugFix: Spoiler gesetzt

    Einmal editiert, zuletzt von maxxetrs (12. Juli 2007 um 17:57)

  • Die While-Schleife ist von der Synthax her in Ordnung.
    Allerdings fehlt in deiner If-Anweisung das EndIf.

    Da $loop aber auch nicht erhöht wird sieht mir das fast nach einer Endlosschleife aus (mal abgesehen vom Fall $acces = 6).

    Für derart große Fallunterscheidungen würde ich aber sowieso eher zu einer >>Switch<< oder >>Select<< Anweisung tendieren.