Func in der Func neu ausführen

  • Hallo miteinander,

    mit einem HotKeySet Lesen ich ein paar Dinge von einer Webseite und Rufe auch eine neue Seite auf, ganz zum Schluss Prüfe ich ob auf der neuen Webseite was bestimmtes Steht wenn ja dann möchte ich das die Func in der ich ja noch bin gleich noch mal ausgeführt wird. wie macht man so was?

    Da ist mein Code:

    ich habe mir überlegt die IF so umzubauen:

    AutoIt
    If StringInStr($sText, $search) <> 0 Then Call ("hotkeyPressed")

    das geht dann auch, jedoch habe ich die Befürchtung das das nur eine Temp Lösung ist denn die Func ist ja noch nicht beendet und wired wider neu aufgerufen, und das könnte ich mir vorstellen ist irgend wann ein Problem? oder Irre ich mich dabei?


    Gruß Mücke

  • Hi,

    Das nennt man Rekursion und ist kein Problem solange die Anzahl der möglichen Rekursionen begrenzt ist.
    Ansonsten kannst du das so umgehen:


    Edit: Du brauchst normalerweise kein Call um Funktionen aufzurufen.
    Edit2: Noch ein kurzes Zitat aus Wikipedia:

    Rekursive Programme haben in der Regel keine gute Performance. Durch die wiederholten Funktionsaufrufe (Inkarnationen) wird immer wieder derselbe Methodeneintrittscode bearbeitet und bei jeder Inkarnation der Kontext gesichert, was zu zusätzlichem Programmcode und höherem Arbeitsspeicherverbrauch führt. Alle rekursiven Algorithmen lassen sich jedoch auch durch iterative Programmierung implementieren (und umgekehrt).


    mfg
    Zeitriss

    Einmal editiert, zuletzt von Zeitriss (8. Dezember 2016 um 15:26) aus folgendem Grund: Formulierung angepasst und noch eine Erklärung hinzugefügt

  • OK, dann ist das ja gut, das das Rest mal kein Problem ist, auch wenn ich das Sehr unschön finde.

    Dein Ansatz gefällt mir hingegen schon deutlich Besser.
    Danke.