TextBox auf Zahlen überprüfen!

03/26/2013 20:17 nawiat#1
Hey leute !

habe mal eine Function geschriegen, wo man sich an anfang einen Name aussuchen kann. Da ich aber nicht will das sich Leute Adolf H**** nennen, oder sich ne Zahl in den Namen packen habe ich das hier geschrieben:

Code:
Public Class SplashScreen1

    Public dein_Name As String

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        For i = 0 To TextBox1.TextLength - 1
            Dim currentChar As String = TextBox1.Text(i)
            If IsNumeric(currentChar) Then
                MsgBox("Zahlen sind nicht erlaubt")
                Exit For
            End If
        Next

        If TextBox1.Text = "Adolf *" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "adolf *" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "Adolf *" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "adolf *" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "adolf*" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "Adolf*" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "Adolf*" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "adolf*" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "Ad0lf *" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "ad0lf *" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "Ad0lf *" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "ad0lf *" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "ad0lfv" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "Ad0lf*" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "Ad0lf*" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "ad0lf*" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "*" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "*" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "Adolf" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "adolf" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "Ad0lf" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "ad0lf" Then
            MsgBox("Nicht erlaubt")
        ElseIf TextBox1.Text = "* Adolf" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "*Adolf" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "*adolf" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "*adolf" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "*Adolf" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "*Adolf" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "*adolf" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "*adolf" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "* Ad0lf" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "* Ad0lf" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "*ad0lf" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "*ad0lf" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "*Ad0lf" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "*Ad0lf" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "*ad0lf" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "*ad0lf" Then
            MsgBox("Nicht erlaubt!")

        Else
            If TextBox1.Text.Length >= 3 Then
                dein_Name = TextBox1.Text
                Tutorial.Show()
                Me.Hide()
            Else
                MsgBox("Du musst einen richtigen Namen eingeben", vbOKOnly, "Falscher Name")
            End If
        End If

    End Sub

    Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
        End

    End Sub

    Private Sub SplashScreen1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load

    End Sub

    Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click
        MsgBox("Diese Function geht nicht, wer eine Function weiß kann sie mir schreiben!")
        'Shell(Application.StartupPath & "\Resourcen\Datein\Readme.txt")

    End Sub

End Class
er überprüft zwar das dort eine zahl drinnen ist oder nicht, lässt dann aber die Function weiter ablaufen und überprüft als nächstes den Namen !

wie mache ich es, das er, wenn eine Zahl drinn ist, nicht weiter überprüft und mich mit den namen nicht durchlässt ?

Danke schonmal!

MFG
Nawiat
03/26/2013 20:20 Mansuro#2
Das hilft dir vielleicht: [Only registered and activated users can see links. Click Here To Register...]
03/26/2013 20:26 nawiat#3
Ist halt nicht so einfach das mit ein zu bauen, da er bei mir dann zwar sagt das eine zahl drinn ist, aber dann nichtmehr die Namen danach kontrolliert ! also Adolf H****1 geht dann ;(

^^
03/26/2013 20:29 Jeoni#4
Das, was du vermutlich suchst, nennt sich "Regular Expressions", oder kurz: Regex. Mit diesem Stichpunkt dürfstest du bei Google genug finden ;)
Falls du dazu noch Fragen hast, kannst du mir gerne eine PN schicken.
MfG
Jeoni
03/26/2013 20:29 tolio#5
regex ist der schlüssel für sowas, musst dir dann nur gescheite patterns ausdenken, gibts bestimmt auch im internet irgendwo sachen zu
03/26/2013 20:45 nawiat#6
habe es jetzt so erstmal :

Code:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        If NurZahlen() = Return True Then

        ElseIf TextBox1.Text = "Adolf *" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "adolf*" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "Adolf *" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "adolf *" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "*" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "*" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "*" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "*" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "**" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "ad0lf *" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "Ad0lf *" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "ad0lf *" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "*" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "*" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "*" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "*" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "*" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "*" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "*" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "*" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "*" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "*" Then
            MsgBox("Nicht erlaubt")
        ElseIf TextBox1.Text = "*Adolf" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "*Adolf" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "*adolf" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "*adolf" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "*" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "*" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "*" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "*" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "*Ad0lf" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "*Ad0lf" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "*ad0lf" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "*ad0lf" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "*" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "*" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "*" Then
            MsgBox("Nicht erlaubt!")
        ElseIf TextBox1.Text = "*" Then
            MsgBox("Nicht erlaubt!")

        Else
            If TextBox1.Text.Length >= 3 Then
                dein_Name = TextBox1.Text
                Tutorial.Show()
                Me.Hide()
            Else
                MsgBox("Du musst einen richtigen Namen eingeben", vbOKOnly, "Falscher Name")
            End If
        End If

    End Sub

    Public Function NurZahlen(ByVal Text As String) As Boolean

        If TextBox1.Text.Length = 0 Then Return False
        If Not IsNumeric(Text) Then Return False

        For i As Integer = 0 To TextBox1.Text.Length - 1
            If Not "0123456789".Contains(TextBox1.Text.Chars(i)) Then
                Return False
            End If
        Next
        Return True

    End Function
aber das erste, das er erst die Function überprüfen soll und dann die namen geht nicht

Also If NurZahlen() = Return True Then

da mekert er bei NurZahlen()

Hey ! Helft mir ;(

Bitte
03/26/2013 21:36 tolio#7
Quote:
Originally Posted by nawiat View Post
If NurZahlen() = Return True Then
ALTER, les dir erstmal irgendwo nen tag lang die grundlagen an.
04/03/2013 01:02 ElDiabolus#8
Code:
            try
            {
                int zahl1 = Convert.ToInt16(textBox1.Text);
                int zahl2 = Convert.ToInt16(textBox2.Text);
                int ergebnis = zahl1 + zahl2;
                label1.Text = Convert.ToString(ergebnis);
            }
            catch
            {
                MessageBox.Show("Du musst Zahlen eingeben, du Spoast!");
            }
Nur umgekehrt.
Außerdem brauchst du Hitler nicht zensieren, du Held...
04/04/2013 16:36 x]vIrus[x#9
ich hinterlass hier einfach mal ein FACEPALM
04/05/2013 18:53 #SoNiice#10
Quote:
Originally Posted by x]vIrus[x View Post
ich hinterlass hier einfach mal ein FACEPALM
Und für dich hinterlasse ich 'nen Report, helft ihm doch einfach anstatt dumme Kommentare zu hinterlassen.
__

Wenn du mit Regex noch nicht gearbeitet hast, empfehle ich dir eine manuelle Überprüfung mit etlichen If-Abfragen.

Code:
Private Function checkString(text As String) As Boolean
	Dim pat As String = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
	For Each ch As Char In text
		If pat.IndexOf(ch) < 0 Then
			Return False
		End If
	Next
	Return True
End Function
Ansonsten, wenn du es gerne in Regex hättest:

Code:
Private Function checkString(text As String) As Boolean
	Dim pat As New System.Text.RegularExpressions.Regex("^[A-Za-z]+$")
	Return pat.IsMatch(text.Trim())
End Function
Bin mir nicht sicher ob das in vB so richtig ist, bin normalerweise C# Programmierer, hoffe aber, dass der Syntax dennoch richtig ist ;-)

Den Namen Adolf bzw. Hitler zu sperren ist übrigens schwachsinnig, sind beides noch genutzte Namen.