Var Call

  • Folgende Situation:

    Spoiler anzeigen
    [autoit]

    If ($calc1 = True) or ($calc2 = True) or ($calc3 = True) Then
    ;
    If ($calc1 = True) or ($calc2 = True) or ($calc3 = True) Then
    ;
    EndIf
    EndIf

    [/autoit]


    Ich möchte sozusagen herausbekommen, welche Variabel True ist, so dass ich eine ,sozusagen, wegstreichen kann.Sonst würde das ganze ja durchrasseln.
    Ich weiß dass ich das auch schön fein einzeln schreiben könnte, aber dazu bin ich zu faul^^. Deshalb meine Frage:
    Gibt es soetwas wie ein Variabel Call, mit dem ich zB herausfinden kann, welche Variable sich zuletzt geändert hat?
    VarGetType bringt ja nicht viel und mit "Call" kann ich nur Funktionen callen.
    Danke
    Gruß

  • Wie wäre es dafür einfach Select zu nehmen? Und wenn du es wirklich brauchst, dann For Schleife mit Eval drin.
    Edit:

    [autoit]

    ;Mit Select:
    Select
    Case $calc1
    MsgBox(0, "Ergebnis", "calc1 ist True")
    Case $calc2
    ;...
    EndSelect
    ;Und mit For:
    For $i = 1 To 3
    If Eval("calc" & $i) Then MsgBox(0, "Ergebnis", "calc" & $i & " ist True")
    Next

    [/autoit]

    So hab ich die Problemstellung aufgefasst

    Projekte: Keine größeren (und fertigen)
    Gegen Internetzensur:
    https://epetitionen.bundestag.de/index.php?acti…s;petition=3860
    (Zeichnungsfrist abgelaufen)
    __________________________________________________________________________________________________________________________________
    Dieser Beitrag wurde bereits 264 mal editiert, zuletzt von »Fast2« (30. Februar 2009, 12:99)

    Einmal editiert, zuletzt von Fast2 (16. Mai 2008 um 14:49)

  • Fast2 könntest du mir mal ein grobes beispiel geben,wie du das meinst ^^
    @xeno wie soll ich den status protokollieren? und dann muss ich ja im endeffekt doch alles für jede einzelne varibale schreiben...
    gruß

  • Möglicherweise kann man die Variablen auch durch eine ersetzen, aber ohne den Anwendungszweck kann ich das leider nicht sagen :P
    Daher: Kannst du vllt. ds ganze Skript posten :)

    • Offizieller Beitrag

    Ich versteh nicht, was das für einen Sinn haben soll.
    Wenn sich der Wert einer Variablen ändert, so passiert das ja nicht von allein, sondern weil du es so programmiert hast. Was hindert dich, an der Stelle, wo die Wertzuweisung erfolgt, eine Aktion auszulösen, die diesen Vorgang protokolliert?
    Denkbar wäre z.B. ein gepushtes Array, das auf diese Art immer die letzten 5 od. 10 od. ... Änderungen führt.
    Aber ohne zu wisen, was du vorhast, ist es schwer Hilfe zu leisten.