[VBS] Buchstaben Abfrage

  • VBScript

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von Tobbes77.

    [VBS] Buchstaben Abfrage

    Hallo Forum Benutzer,
    Ich habe letzte Woche angefangen erstmals ein wenig mit vbs zu skripten und bin dementsprechend noch sehr unerfahren.
    Da ich nirgendswo eine Antwort finden konnte, frage ich hier einfach mal.
    Und zwar ist mir "IsNumeric" bereits bekannt, jedoch frage ich mich ob es sowas auch für Buchstaben gibt.
    Hier mal mein Skript, bei dem "IsNumeric" mit einer Buchstaben Abfrage ersetzt werden soll.

    frage = "Hallo, wie heißen Sie?"
    Do
    name = InputBox(frage)
    If IsEmpty(name) Then
    MsgBox "Sie wollen abbrechen? In Ordnung!"
    WScript.Quit
    End If
    frage = """" & name & """ ist kein Name. Bitte geben Sie Ihren Name ein!"
    Loop Until IsNumeric(name)
    msgbox "Hallo" & name

    Bei diesem Skript möchte ich, dass man in die Inputbox nur Buchstaben eingeben kann, sodass man keinen Name mit Zahlen oder sonstigen Sonderzeichen verwenden kann.
    Im Prinzip hast du das ja oben schon, und zwar mit Do ... Loop Until. Du könntest z. B. eine Variable auf False setzen, wenn ein "invalid char" gefunden wurde.

    Visual Basic-Quellcode

    1. namekorrekt = true
    2. do
    3. ' ... if ...invalid char... then namekorrekt = false
    4. loop until namekorrekt
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum
    Hey Leute,
    wahrscheinlich bin ich hier im Forum falsch aber ich habe im Internet leider keine Lösung gefunden die ich verstanden habe.
    Wie gesagt ich bin komplett neu im Thema Skripten und habe daher sehr wenig Erfahrungen..
    Im folgenden Skript möchte ich, dass man in alle 3 Inputboxen nur das einfügen kann, was da auch reingehört. Für a1 und b1 habe ich das ja schon mit Loop Until IsNumeric gemacht jedoch geht das bei c1 nicht, weil dort die Rechenoperatoren rein sollen und keine Zahlen oder sonst etwas.
    Nun meine Frage: Wie mache ich es, damit bei c1 das gleiche passiert wie bei a1 und b1 nur mit Rechenoperatoren anstatt Zahlen.

    Visual Basic-Quellcode

    1. option explicit
    2. dim a1,b1,c1,a,b,c,result,ergebnis,Frage1,Frage2
    3. Frage1 = "Geben Sie hier die erste Zahl ein!"
    4. Do
    5. a1 = inputbox(Frage1)
    6. If IsEmpty(a1) Then
    7. MsgBox "Sie wollen abbrechen? In Ordnung!"
    8. wScript.Quit
    9. End If
    10. Frage1 = """" & a1 & """ ist keine Zahl!" & vbnewline & "Gib eine Zahl ein!"
    11. Loop Until IsNumeric(a1)
    12. c1 = inputbox ( "Rechenoperator" & vbnewline & vbnewline & "Benutze für..." & vbnewline & " Plus: +" & vbnewline & " Minus: -" & vbnewline & " Geteilt: /" & vbnewline & " Mal: *")
    13. If IsEmpty(c1) Then
    14. Msgbox "Sie wollen abbrechen? In Ordnung!"
    15. wScript.Quit
    16. End If
    17. Frage2 = "Geben Sie hier die zweite Zahl ein!"
    18. Do
    19. b1 = inputbox(Frage2)
    20. If IsEmpty(b1) Then
    21. MsgBox "Sie wollen abbrechen? In Ordnung!"
    22. wScript.Quit
    23. End If
    24. Frage2 = """" & b1 & """ ist keine Zahl!" & vbnewline & "Geben Sie eine Zahl ein!"
    25. Loop Until IsNumeric(b1)
    26. rechnen a1,b1,c1
    27. msgbox a1 & " " & c1 & " " & b1 & " = " & ergebnis,,"Ergebnis"
    28. function rechnen (a,b,c)
    29. if c = "+" Then
    30. ergebnis = clng(a)+clng(b)
    31. Else If c = "-" Then
    32. ergebnis = clng(a)-clng(b)
    33. Else If c = "*" Then
    34. ergebnis = clng(a)*clng(b)
    35. Else If c = "/" Then
    36. ergebnis = clng(a)/clng(b)
    37. End If
    38. End if
    39. End if
    40. End if end function
    Nun meine Frage: Wie mache ich es, damit bei c1 das gleiche passiert wie bei a1


    Sieh dir als Grundlage das Beispiel von petaod an.
    oder

    Visual Basic-Quellcode

    1. ...
    2. Loop Until c1 ="+" Or c1 = "-" Or ...
    3. ...

    oder mit Select Case den Ascii-Code auswerten.

    Tipp: Sieh dir VBSEdit oder den kostenlosen Systemscripter an

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Eierlein“ ()