Forum: Mikrocontroller und Digitale Elektronik Select Case Problem - Springt nur in 1. Case


von Simon W. (simon1711)


Lesenswert?

Hallo,

ich habe eine einfache (dachte ich zumindest) Select Case Auflistung, 
die mir den entsprechenden Code für meine Funksteckdosen setzt.
1
Sub Seto(byval Dose As String , Byval State As Byte)
2
   Print "Dose: " ; Dose
3
   Print "Sys: " ; Left(dose , 1)
4
   Print "Dose: " ; Mid(dose , 2 , 1)
5
6
     Select Case Left(dose , 1)
7
8
     Case "A" : Systemcode = "1FFF"
9
     Case "B" : Systemcode = "F1FF"
10
     Case "C" : Systemcode = "FF1F"
11
     Case "D" : Systemcode = "FFF1"
12
     Case "1" : Systemcode = "0FFFF"
13
     Case "2" : Systemcode = "F0FFF"
14
     Case "3" : Systemcode = "FF0FF"
15
     Case "4" : Systemcode = "FFF0F"
16
     Case "5" : Systemcode = "FFFF0"
17
     Case Else : Systemcode = "null"
18
     End Select
19
20
     Select Case Mid(dose , 2 , 1)
21
22
     Case "1" : Steckdose = "1FF000"
23
     Case "2" : Steckdose = "1FF000"
24
     Case "3" : Steckdose = "1FF000"
25
     Case "A" : Steckdose = "FFFFF"
26
     Case "B" : Steckdose = "0FFFF"
27
     Case "C" : Steckdose = "F0FFF"
28
     Case "D" : Steckdose = "FF0FF"
29
     Case "E" : Steckdose = "FFF0F"
30
     Case "F" : Steckdose = "FFFF0"
31
     Case "G" : Steckdose = "00FFF"
32
     Case "H" : Steckdose = "F00FF"
33
     Case "I" : Steckdose = "FF00F"
34
     Case "J" : Steckdose = "FFF00"
35
     Case Else : Steckdose = "null"
36
     End Select
37
38
39
     If State = 1 Then
40
         If Len(systemcode) = 4 Then
41
            Onoff = "10"
42
         Elseif Len(systemcode) = 5 Then
43
            Onoff = "0F"
44
         End If
45
     Elseif State = 0 Then
46
         If Len(systemcode) = 4 Then
47
            Onoff = "01"
48
         Elseif Len(systemcode) = 5 Then
49
            Onoff = "F0"
50
         End If
51
     End If
52
53
54
55
56
     If Steckdose = "null" Or Systemcode = "null" Then
57
     Locate 2 , 1
58
     Lcd Systemcode
59
     Locate 3 , 1
60
     Lcd Steckdose
61
     Locate 4 , 1
62
     Lcd "Fehler! Falsche eing"
63
     Print "Fehler! Falsche eing"
64
     Else
65
     Funkcode_complete = Systemcode + Steckdose + Onoff
66
67
     Print "Sende " ; Dose ; " " ; State ; " Code : " ; Funkcode_complete
68
     Locate 4 , 1
69
     Lcd "Schalte " ; Dose ; " " ; State ; "        "
70
     Gosub Sendecodes
71
     End If
72
73
End Sub


Wenn ich jetzt den String "A1" selectieren will, funktionier alles 
wunderbar. Sobalt es aber in ein Case springen sollte, der nicht an 
erster Stelle steht, lande ich im Case Else.

Also bei z.B. "B2" wird Systemcode und Steckdose jew. "null".

Warum beachtet er die anderen Cases nicht????

Vielen Dank

Simon

von Simon W. (simon1711)


Lesenswert?

SOLVED!
1
 Select Case Left(dose , 1)

geht nicht! Über Zwischenvariable läufts.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.