If..Then Verschachtelung umwandeln in Select..Case oder Switch..

  • Ich habe da eine verschachtelte If..Then Schleife, die sehr unübersichlich geworden ist und würde die gerne umwandeln
    und habs zwar im Wiki gelesen, weiß aber nicht wie ich meine so umwandeln kann.

    Spoiler anzeigen

    Einmal editiert, zuletzt von Fintan (2. Februar 2016 um 20:02) aus folgendem Grund: ..

  • Habs jetzt so gekürzt:

    Mehr kann man schlecht kürzen, ohne zu wissen, wie genau das Funktionieren soll.
    Man muss zum vereinfachen regelmäßigkeiten suchen, die immer gleich sind. Oft helfen bei so etwas auch arrays, z.B. wenn man mehrere Ordner auf genau die gleiche Weise durchsuchen will,...
    Mit nem return -1 springt man übrigens aus einer Funktion heraus und gibt -1 zurück, dort kann auch eine andere Rückgabe erfolgen, auf die dann reagiert werden kann. Dadurch spart man sich z.B. riesige If/Else Blöcke, bzw. die wo nichts passieren soll.

    MfG Kanashius

  • Interessante Möglichkeit, mich würde aber lieber die zuvor gefragte Select..case Variante interessieren..
    Ich bräuchte halt ein konkretes beispiel mit einer meinen If--then Schleifen, damit ich verstehe wie sowas geht.

    Wie man vielleicht erkennen kann, will ich mit verschiedenen Eingaben mehrere Ordner durchsuchen.

    - mit '01-1111-8' soll 'Angebot 2008' + 'alte Angebot 2008' oder 'alte Angebot 2008' mit 'AN-01-1111-8' -Ordnern durchsucht werden.
    - mit '01-1111-12' soll 'Angebot 2012' + 'alte Angebot 2012' oder 'Auftrag 2012' oder 'Auftrag 2013' durchsucht werden.


    Das sind schon 5 Ordnersuchvarianten...

  • wenn du ein lauffähiges DemosKript (consolewrite für evtl. Aktionen) machst, mache ich mir die Mühe es auf select ... endselecet umzusetzen, es wird aber mit Sicherheit auch verschachtelt sein => können wir uns also die Mühe sparen, ist keine laufzeit kritische Anwendung! (Und funktioniert bereits)

  • Aus der Hilfe:

    Dazugehörig die If-Bedingung:

    Ist also eigentlich fast nur eine andere Schreibweise (intern sind dort noch nen paar unterschiede)
    Die Bedingungen musst du also immernoch mehrfach aufzählen. Deshalb hatte ich nichts damit eingebaut. Es macht hier nicht wirklich Sinn.

    Habs jetzt mal so umgeschrieben, wie es zu dem passt, wie dus beschrieben hast. Das mit der Suche könnte man noch ändern, jenachdem, was für Bedingungen es dort gibt.
    Hoffe, ich habs richtig verstanden:

  • Kanashius, ah du hast dir so eine Mühe gemacht, danke.
    Hilfe lesen habe ich kein Problem, eher mit der Umsetzung, bin also wirklich noch Anfänger.

    Also mich würde nur die _goAngAlt Funktion in Zeile 232 im Script interessieren, alle anderen kann man lassen.Suchfunktion habe ich ja schon mit _FO_FolderSearch, hängt am Ende vom Script, mir ging es wirlich nur um die Umformulierung.
    Habe gedacht, das sieht man im Script-fetzen von Oben.

    Und die 01-1111-12 wird mit 3 Inputs ausgelesen, worauf dann die einzelnen Suchen begründen ...

    Einmal editiert, zuletzt von Fintan (26. Februar 2016 um 20:37)

  • @ Kanashius
    Hm, ich weiß nicht wie/wo ich meine Pfade in dein Script schreiben soll, weil es 2 verschiede sind.
    G:\Dateien\Kunden\ANGEBOT \ AUFTRAG
    G:\Dateien\alte daten\Kunden\ANGEBOT \ AUFTRAG

    Ich brauche schon die _FO_FolderSearch Suchfunktion, damit kann ich dann Ordner suchen die einen Unbekannten Ordner enthalten kann.
    G:\Dateien\Kunden\AUFTRAG 2014\02-XXXX-14\01-8888-14

    Meine konstruierten Pfade sind etwas verwirrend, aber die brauche ich so konstruiert, damit das Script funktioniert...

    Einmal editiert, zuletzt von Fintan (26. Februar 2016 um 20:39) aus folgendem Grund: .