großes Problem mit kleinen Zahlen

  • Ich habe ein großes Problem obwohl die lösung wahrscheinlich ganz simpel ist und ich es nur nicht sehe :(

    Folgende Situation:
    1. ich habe mit _FileListToArray die namen von normalen *.txt dateien aus einem ordner ausgelesen
    2. ich habe sie dann mit _ArraySort "gegen" das Alphabet sortiert
    3. ich will alle dateien ausser die neuste also $File[1] löschen!

    jetzt zu meinem Problem...
    wie mache ich das autoit alle dateien ausser die letzte löscht?

    ich hab's so versucht (klappt aber nicht):

    [autoit]


    $anzahl=$file[0]

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

    Do
    FileDelete($path & $file[2]+1) ;er soll immer +1 löschen (klappt nicht und er sagt das da wenn dann ein '=' hinein muss)
    Until $anzahl = 1

    [/autoit]
  • ohh man :rofl:
    es lag mir auf der zunge :D

    Danke, drauf gekommen wäre ich heute nicht mehr ;)

  • Sicherlich ist die Lösung von Name22 die effektivste, da ich aber vorher schon überlegt hatte, möchte ich meine Lösung trotzdem posten, schon damit klar wird, was im Original-Post nicht funktioniert:

    [autoit]

    $anzahl=$file[0] ;das kann so bleiben..
    Do ; Einstellungssache, da For-Schleife imho besser.,
    FileDelete($path & $file[$anzahl]) ; es soll immer das Feld $Anzahl(!!) gelöscht werden..
    $anzahl -= 1
    Until $anzahl = 1

    [/autoit]


    Gruß
    ytwinky

    (Ich) benutze stets die aktuelle (Beta) und SciTE..

  • ich hatte es fast genauso wie du aber die error meldung (da stand da muss ein '=' hin) hatte mich dann total verwirrt deshalb kam ich auch auf die idee mit dem

    [autoit]

    $anzahl -= 1

    [/autoit]

    nicht
    Danke auch an dich - jetzt weis ich auch genau woran es lag :P

  • Die Error Meldung wurde angezeigt, weil du zu einem Element eines Arrays 1 dazuzählen wolltest obwohl der Inhalt ein String und keine Zahl ist. AutoIt denkt jetzt, du wolltest nur dem Array Element einen neuen Wert (nämlich 1) zuweisen und hast dich dabei leicht verschrieben ;).