PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [gelöst] String mit "select Case" auswerten



emulein
02.08.2009, 20:13
Hallo Zusammen,

ich bin am rumprobieren und bin nicht sicher wo mein Fehler
liegt. Kann man in Bascom einen String mit 3Zeichen Inhalt
so auswerten?

dim Ausgabe_com2 as String *3

Select Case Ausgabe_com2
Case "Ein" : Portd.5 = 1
Case "Aus" : Portd.5 = 0
Case Else : Print #1 , "Fehler"
End Select

also bei mir kommt immer die letzte Case Anweisung raus, den Inhalt von "Ausgabe_com2" sehe ich aber richtig im LCD, also das sollte stimmen.

Danke schon mal!

Gruß Frank

Willa
02.08.2009, 21:06
Ich glaube das geht besser mit der Funktion "INSTR":
Ein_empfangen = Instr(inputstring , "Ein")

emulein
03.08.2009, 11:52
Hi,

danke ich schau mir das mal an, wirkt aber recht umständlich.
Hätte nicht gedacht das scheinbar mit "select case" nicht geht.
Im Netz hatte ich schon ein paar Beispiele gesehen, dort fragen
die es auch so ab, habe jetzt keine Ahnung ob die Code´s auch wirklich laufen oder nur mal so getippt wurden.

Gruß Frank

PicNick
03.08.2009, 14:02
Hast du Groß-Kleinschreibung beachtet ? Der Input muss genau stimmen

emulein
03.08.2009, 14:42
Hallo Robert,

ich denke ja, den selben String lasse ich mir zur Zeit noch auf dem LCD
ausgeben, sollte passen. Habe jetzt noch mal ein bissel im Netz gestöbert,
alles was man findet sieht genauso aus wie bei mit, vielleicht mach ich
da wo anders einen Fehler, muss da heute Abend noch mal genau drüber schauen.

Danke, trotzdem!!

Gruß Frank

PicNick
03.08.2009, 17:02
However, folgendes funktioniert:



Dim Instrg As String * 20
Do
Instrg = "Eins"
Gosub Check

Instrg = "Zwei"
Gosub Check

Loop


End 'end program
'-------------------------------
Check:
Select Case Instrg
Case "Eins" : Print "One"
Case "Zwei" : Print "Two"
Case Else : Print "?"
End Select
Return


Aupassen, irgendwelche Leer/sonder-zeichen im String siehst du zwar am LCD nicht, trotzdem erkennt er das dann nicht

peterfido
03.08.2009, 19:53
Es könnte an den Steuerzeichen liegen. Meist werden Strings mit chr(10) und chr(13) abgeschlossen.

emulein
03.08.2009, 21:19
Hallo Zusammen,

Ihr habt scheinbar Recht, ich habe mir mal die Stringlänge mit ausgeben lassen, ist immer ein Zeichen mehr drin, obwohl man es nicht auf dem Display sieht. Muss mir die Empfangsroutine noch mal ansehen.

Danke schon mal!!

Gruß Frank

emulein
03.08.2009, 22:19
Hallo,

so es geht, war wirklich ein Zeichen zu viel im String, hatte da einen Fehler im Code. Danke für die guten Tipp´s

Gruß Frank