Switch/CASE reorganisieren

  • Ich habe mal eine Programmiertechnische Frage. Ich arbeite viel mit Ablaufgraphen die ich mittels Swich/CASE abarbeite. a la:

    [autoit]


    while 1
    Switch StateMachine

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

    Case 0
    ; irgendwas tun
    StateMachine = 10

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

    Case 10;
    ; irgendwas tun
    StateMachine = 11

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

    Case 11
    ; irgendwas tun später eingefügt
    StateMachine = 12

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

    Case 12
    if xyz = a then
    StateMachine = 30
    else
    StateMachine = 0
    end if
    Case 30
    ; irgendwas tun
    StateMachine = 40

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

    EndSwitch
    Case Else

    [/autoit]

    Am Anfang gibt man sich Mühe und läßt genügend Platz zwischen den Casenummern. Mit der Zeit wird es aber eng (10,11,12) und man muß noch etwas einfügen => man müßte alles reorganisieren, was per Hand ne Menge Aufwand ist.
    Ich suche ein Script/Editor der das macht.
    Also raussuchen was gibt es für CASE nummern, und die Nummern ändert
    wie z.Bsp.
    30 wird 3000
    20 wird 2000
    12 wird 1200
    11 wird 1100

    oder auch nur Bereiche
    10 bleibt 10
    11 wird 13
    12 wird 15
    20 wird 20
    30 wird 30

    also Suchen/ Ersetzen im großen Stil oder so.

    Gibt es da was???

  • hmm, jaa,
    meine Intuition war nicht unbedingt etwas selber erfinden zu müssen.
    Ist doch vielleicht was schon andere gebraucht haben und was ein Editor XYZ natürlich hat - nur wonach suchen...

    Ich kann mich an alte BASIC Zeiten erinnern wo der Interpreter noch Zeilennummernbasiert arbeitete (GOTO 120) da gab es so ein reorganisieren der Zeilennummern mit Schrittweite usw.

    Danke

  • Warum ist die Reihenfolge der Nummern so wichtig? Du kannst doch einfach auch eine noch größere verwenden.
    Oder du gibst jedem Case einen Namen, dann kannst du den in einem Enum verwenden, der dann automatisch angepasst wird ;)

    [autoit]

    Global Enum $CS_INFO, $CS_AUSWAHL, $CS_EINGEFUEGT, $CS_STATUS

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

    Switch $Status
    Case $CS_INFO
    $Status += 1
    Case $CS_AUSWAHL
    $Status += 1
    Case $CS_EINGEFUEGT ; hinterher eingefügt
    $Status += 1
    Case $CS_STATUS
    $Status += 1
    EndSwitch

    [/autoit]
  • Hallo Ruffur,

    eventuell könntest du das ja mit Konstanten, die du am Skriptanfang (evtl. mit Hilfe von enum) deklarierst, lösen. Anstelle der Zahlenwerte fragst du im Switch .. Case .. endswitch Bereich dann diese Konstanten ab. Dies sollte eine praktikale und schnell pflefgbare Lösung für deine Skripte ergeben,

    mfg (Auto)Bert

  • Hallo,

    peethebee
    - muß schon mit allem was drumrum ist geändert werden

    progandy, AutoBert
    - Konstanten und Enum geht nicht, da es nicht in Autoit ist, sondern auf einem SPS System
    Gedanken waren eben aus dem SPS System Text in den XYZ-Editor nehmen, bearbeiten und zurück.

    Nagut, ein Versuch war es Wert. Danke

    RuffuR