1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. point-man

Beiträge von point-man

  • Verlassen einer UDF mit Return funktioniert nicht

    • point-man
    • 12. Mai 2014 um 20:04

    Woa, ihr seit super! Da wäre ich im Leben nicht drauf gekommen. Danke vielmals! Werd ich gleich mal ausprobieren und versuchen zu verstehen ;) Danke!

    Die Problemlösung an und für sich verstehe ich, zumindest prinzipiell. Aber wie funktioniert das mit der @extended-Abfrage genau? Wie/wo/wann wird der Wert für einen Ordner gesetzt? Werde diesbezüglich nicht schlau aus der Dokumentation.

  • Verlassen einer UDF mit Return funktioniert nicht

    • point-man
    • 11. Mai 2014 um 02:24

    Hallo zusammen

    Stehe vor einem Rätsel; habe eine Func erstellt und möchte diese an einer bestimmten Zeile mit "Return" wieder verlassen und dabei auch einen Wert zurückgeben. Klappte an jeder anderen Stelle bisher wunderbar, jetzt plötzlich nicht mehr.

    Folgendes Skript soll das Laufwerk C: nach .exe-Files durchsuchen und von jedem einzelnen File den Pfad zurückgeben.

    [autoit]


    $Path = Search(".exe","C:")
    MsgBox(0,"$Path",$Path)

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

    Func Search($app,$Dir) ;ohne GUI
    Local $Search
    Local $File
    Local $FileAttributes
    Local $FullFilePath

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

    $Search = FileFindFirstFile($Dir & "\*.*")

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

    While 1
    If $Search = -1 Then
    ExitLoop
    EndIf

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

    $File = FileFindNextFile($Search)
    If @error Then ExitLoop

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

    $FullFilePath = $Dir & "" & $File
    $FileAttributes = FileGetAttrib($FullFilePath)

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

    If StringInStr($FileAttributes,"D") Then ;ordner gefunden
    Search($app,$FullFilePath)
    Else ;datei gefunden
    if StringRight($FullFilePath,4) = ".exe" Then
    if StringInStr($FullFilePath, $app,2) <> 0 Then
    $use = MsgBox(3,"Objekt gefunden","Soll folgendes Objekt verwendet werden?"&@LF&$FullFilePath)
    Select
    case $use = "6"
    MsgBox(0,"OK",$FullFilePath)
    Return $FullFilePath
    case $use = "2"
    MsgBox(0,"Abbruch","Suche durch den Benutzer abgebrochen")
    exit
    EndSelect
    EndIf
    EndIf
    EndIf
    WEnd
    FileClose($Search)
    EndFunc

    [/autoit]

    Die Files werden auch gefunden und die MsgBox in Zeile 31 wird auch ausgeführt. Nur das Verlassen der Funktion in Zeile 32 funktioniert nicht. Es ist nicht so, dass nichts zurück gegeben wird, sondern die While-Schleife läuft einfach weiter, obwohl die ganze Funktion verlassen werden sollte.

    Weiss jemand Rat? Danke für euere Hilfe!

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™