Wertabfrage im SelectCase mit Buchstabe und Zahlen

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von zauber777.

    Wertabfrage im SelectCase mit Buchstabe und Zahlen

    Hallo,

    Ich möchte den eingegebenen Wert in einer Textbox prüfen lassen. Dies funktioniert auch soweit, wie ich es will.
    Es werden Zahlen von 1 bis 100, 500 bis 800 und E00 bis E55 eingegeben.

    Bei H00 bis H55 liegt genau das Problem. Ich habe es nur hinbekommen ganze Zahlen prüfen zu lassen. Mit dem Buchstaben davor funktioniert es leider nicht mehr.
    Wie kann ich das realisieren?

    Mein aktueller Code :

    Quellcode

    1. Select Case Val(TextBox1.Text)
    2. Case 1 To 100
    3. '...
    4. Case 500 To 800
    5. '...
    6. Case Else
    7. 'MsgBox("unbekannt")
    8. End Select


    folgendes funktioniert leider nicht :(

    Quellcode

    1. Case H00 To H55
    Moin, Moin,

    ich würde in den Else-Zweig einfach noch eine If-Abfrage mit einer weiteren Select-Anweisung hängen

    VB.NET-Quellcode

    1. If TextBox1.Text.subString(0,1) = "H" then
    2. Select Case Val(TextBox1.Text.subString(1))
    3. Case 0 To 55
    4. ...
    5. Case Else
    6. MsgBox("unbekannt")
    7. End Select
    8. Else
    9. MsgBox("unbekannt")
    10. End If

    zauber777 schrieb:

    irgendwie nicht.
    Geht das ein wenig präziser?
    Setz da nen Haltepunkt rein und klär auf, was da los ist: Debuggen, Fehler finden und beseitigen
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ich weiss nicht warum, aber irgendwie löst immer bei H55 oder H00 MsgBox("1") aus...
    Hier mal mein kompletter Code :

    Quellcode

    1. Select Case Val(TextBox10.Text)
    2. Case 0
    3. MsgBox("1")
    4. Case 1 To 120
    5. MsgBox("2")
    6. Case 600 To 800
    7. MsgBox("3")
    8. Case 955 To 980
    9. MsgBox("4")
    10. Case Else
    11. If TextBox10.Text.Substring(0, 1) = "H" Then
    12. Select Case Val(TextBox10.Text.Substring(1))
    13. Case 0 To 55
    14. MsgBox("5")
    15. Case Else
    16. MsgBox("6")
    17. End Select
    18. Else
    19. MsgBox("7")
    20. End If
    21. End Select



    Habe es jetzt hinbekommen :

    Quellcode

    1. ​If TextBox10.Text.Substring(0, 1) = "H" Then
    2. Select Case Val(TextBox10.Text.Substring(1))
    3. Case 0 To 55
    4. MsgBox("5")
    5. Case Else
    6. MsgBox("6")
    7. End Select
    8. Else
    9. Select Case Val(TextBox10.Text)
    10. Case 0
    11. MsgBox("1")
    12. Case 1 To 120
    13. MsgBox("2")
    14. Case 600 To 800
    15. MsgBox("3")
    16. Case 955 To 980
    17. MsgBox("4")
    18. Case Else
    19. End Select
    20. End If

    Dieser Beitrag wurde bereits 8 mal editiert, zuletzt von „zauber777“ ()

    zauber777 schrieb:

    VB.NET-Quellcode

    1. Val(TextBox10.Text)
    Das ist der Ranz VisualBasic-Namespace. Gugst Du Visual Studio - Empfohlene Einstellungen
    Bei Val("Roulade mit Klößen") kommt da unsinnigerweise 0 raus.
    Am besten, Du testest mit

    VB.NET-Quellcode

    1. If TextBox10.Text.StartsWith("H") Then
    und die Konvertierung machst Du so:

    VB.NET-Quellcode

    1. Dim value = 0
    2. If Not Integer.TryParse(TextBox10.Text, value) Then
    3. MessageBox("Falscher Text")
    4. Return ' False
    5. End If
    6. ' weiter im Text
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Kleiner Tipp für künftige Probleme:
    Haltepunkt (Brakepoint) setzen und per Einzelschritt durch den Code gehen. Da kann man dann sehen was passiert und welchen Wert die Variablen haben. Das muss jeder aus dem FF berrschen. Link zum Theme ist in meiner Signatur.

    Zudem stehts mit Option Strict On programmieren.
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen

    mrMo schrieb:

    Kleiner Tipp für künftige Probleme:
    Haltepunkt (Brakepoint) setzen und per Einzelschritt durch den Code gehen. Da kann man dann sehen was passiert und welchen Wert die Variablen haben. Das muss jeder aus dem FF berrschen. Link zum Theme ist in meiner Signatur.

    Zudem stehts mit Option Strict On programmieren.


    Mit Option Strict On arbeite ich schon immer :)
    Und die empfohlenen Einstellungen schaue ich mir jetzt auch mal an.

    Danke euch nochmal.