"Func" statement has no matching "EndFunc"

  • Hallo,

    wie muss ich mein Script ändern, damit es nicht zur Fehlermeldung kommt:
    "Func" statement has no matching "EndFunc"?
    Wie kommt es zu dieser Fehlermeldung?

    Bitte beachtet:
    Zeilen 1 bis 10 gehören in die Datei Hauptprogramm.au3
    Zeilen 10 bis 15 gehören in die Datei Unterprogramm.au3

    Danke :)

    PS: ich habe eine vergleichbare Konstruktion in einem sehr umfangreichen Script. Im Unterprogramm wird durch eine Funktion ein Wert erzeugt, den ich im Hauptprogramm benötige. Wie im obigen Beispiel. Nur wie kann ich das fehlerfrei lösen, wenn ich die Funktionalität in mehrere Dateien legen möchte wie im obigen Beispiel?

    Einmal editiert, zuletzt von AutoMit (21. Juni 2016 um 00:50)

  • Hi, Funktionen können nicht innerhalb anderer Funktionen definiert werden(zumindest nicht in AutoIt in z.B. LISP geht das durchaus).
    include is quasi ein einfaches reinkopieren des Scriptes, das bedeutet dein Script sieht eigentlich so aus:


    Richtig wäre allerdings so:


    mfg

    Zeitriss

  • Danke Zeitriss für die Erklärung.

    Wenn man auf Grund der Komplexität des Scriptes einen Großteil in eine zweite Datei auslagern muss (Stichwort UDF), inkludet man man die UDF und ruft später "nur" die jeweilige Funktion auf.

    Soweit theoretisch richtig? ...


    Richtig wäre allerdings so:


    mfg

    Zeitriss

    Ich verstehe den Teil leider noch nicht - schlafe drüber :)

  • Ich nehme an hier schlägt wieder mal das "Ich mach mir die Welt, wide wide wie sie mir gefällt" (nur auf Code bezogen).

    Poste doch bitte mal das ganz große Script, falls es immer noch Probleme gibt. Dann hört das "Glasgekugel" auf und wir können dir auch ernsthaft helfen, dass das alles am Ende seine Richtigkeit hat :)

    Es gibt sehr viele Leute, die glauben. Aber aus Aberglauben.
    - Blaise Pascal

  • Funktionen können nicht innerhalb anderer Funktionen definiert werden(zumindest nicht in AutoIt


    Habe drüber geschlafen - es verstanden - und es funktioniert :)

    Das scheint das Problem und gleichzeitig die Lösung zu sein.


    Ich kann zwar diverse Skripte mit include im Hauptteil des Scripts aufrufen, aber so wie ich ein include in eine Funktion setze, kommt es zum Fehler.


    Danke für die Erklärung!


    Und grüner Haken gesetzt.

    Einmal editiert, zuletzt von AutoMit (27. Juni 2016 um 10:57)