TIA WinCC TIA V14 / Select Case

Azrael666

Level-1
Beiträge
239
Reaktionspunkte
19
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute,

ich hab gerade ein Problem mit meiner Select Case, Onkel Google hilft leider auch nicht wirklich weiter.
Edit: Code VBScript

Code:
Dim Case_ID
Dim Fl : Set Fl = SmartTags("Filelength")


Select Case Fl
    Case Fl > 0 And Fl <= 1999
        Case_ID = 1
    Case Fl > 1999 And Fl <=3999
        Case_ID = 2
    Case Fl > 3999 And Fl <=5999
        Case_ID = 3
    Case Fl > 5999 And Fl <=7999
        Case_ID = 4
    Case Fl > 7999 And Fl <=9999
        Case_ID = 5
    Case Fl > 9999 And Fl <=11999
        Case_ID = 6
    Case Fl > 11999 And Fl <=13999
        Case_ID = 7
    Case Fl > 13999 And Fl <=15999
        Case_ID = 8
    Case Fl > 15999 And Fl <=17999
        Case_ID = 9
    Case Fl > 17999 And Fl <=19999
        Case_ID = 10
    Case Else
        Case_ID = "NA"
End Select

SmartTags("Filelength") ist ein UINT

Das komisch an der Sache :
wenn Fl Null ist, dann wird Case_ID 1
wenn Fl größer Null ist, dann wird Case_ID "NA"

Was ist denn falsch an dem Code?

MFG Azrael
 
Zuletzt bearbeitet:
;) aber klar doch hab ich WinCC Flex 2008.
Die Hilfe dort hilft mir aber nur soweit, dass ich der Meinung bin, dass meine Case-Anweisung soweit korrekt ist.

Ich hab jetzt schon alles Mögliche ausprobiert: mit und ohne Klammer, getrennt mit Komma ohne Komma, mit "IS" davor, die Variable im Case-Teil weggelassen und alles in verschiedenen Varianten kombiniert. Enweder ich bekomme dann nen Syntax-Fehler oder aber es kommt das oben erwähnte.
 
Du mußt wohl vor der Case-Anweisung den Vergleich erledigen, damit eine Int schreiben und mit dieser Int in die Case-Anweisung gehen.

Dann muss ich vor der Case-Anweisung noch mehrere If-Schleifen basteln?
Bevor ich die Case-Anweisung gebastelt hatte, hatte ich alles schon in ner großen If-Schleife. Das hat auch funktioniert, sah aber scheiße aus.
 
Es scheint wohl doch eine Möglichkeit zu geben, hinter CASE einen Bereich bzw. einen Testausdruck anzugeben:
http://www.robarspages.ca/web-development/vbscript-select-case-for-range-of-values/
Code:
select case [COLOR="#0000FF"]TRUE[/COLOR]
    case your_var >= 0 and your_var < = 4
        'do your stuff
    case your_var >= 5 and your_var < = 10
        'do your stuff
    case else
        'handle the else
end select

eventuell geht auch sowas:
Code:
Select Case Fl
    Case 1 To 1999
        Case_ID = 1
    Case 2000 To 3999
        Case_ID = 2

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@PN/DP:

Alles klar, ich sag mal so "sch... die Wand an". Danke für den Schubs in die richtige Richtung. Jetzt funktioniert es!! Und zwar muss der Ganze Mist so aussehen:

Code:
Dim Case_ID
Dim Fl : Set Fl = SmartTags("Filelength")


Select Case True
    Case Fl >0 And Fl <=1999
        Case_ID = 1
    Case Fl > 1999 And Fl <=3999
        Case_ID = 2
    Case Fl > 3999 And Fl <=5999
        Case_ID = 3
    Case Fl > 5999 And Fl <=7999
        Case_ID = 4
    Case Fl > 7999 And Fl <=9999
        Case_ID = 5
    Case Fl > 9999 And Fl <=11999
        Case_ID = 6
    Case Fl > 11999 And Fl <=13999
        Case_ID = 7
    Case Fl > 13999 And Fl <=15999
        Case_ID = 8
    Case Fl > 15999 And Fl <=17999
        Case_ID = 9
    Case Fl > 17999 And Fl <=19999
        Case_ID = 10
    Case Else
        Case_ID = "NA"
End Select
 
Zurück
Oben