Element von
-
Donnerstag, 27. Dezember 2012 13:43
Servus leute,
ich hab eine Frage und zwar wie kann ich bei Visual Basic eine If Operation schreiben die ungefähr das beinhaltet:
if Eingabe is element von erlaubteZeichen
Eingabe ist das was in die TextBox eingegeben wird und erlaubteZeichen ist meine Menge die ich im Voraus definiert habe mit Buchstaben von a-z, bzw. ich möchte prüfen ob die Eingabe nur aus erlaubtenZeichen besteht. Ich bedanke mich schon im Voraus für eure kompetente Hilfe. :D
Alle Antworten
-
Donnerstag, 27. Dezember 2012 13:51
Hallo, mir fällt da Regex ein:If Not Regex.Match(input, "^[a-zA-Z0-9]*$").Success Then MessageBox("Falsche Eingabe") End IfIn den eckigen Klammern kannst du alle Zeichen eingeben die du erlauben willst. Bereiche für Buchstaben und Zahlen werden mit einem bindestrich (-) angegeben. Sonderzeichen wie .\/-+* usw. müssen ein Backslash (\) davor stehen haben. Das Sternchen gibt an, das 0 oder mehr davon vorkommen können: Eine mehr oder weniger komplette zusammenfassung, findest du in dem oben verlinkten Artikel.
Koopakiller [kuːpakɪllɐ] | Webseite | Code Beispiele | Facebook
- Als Antwort vorgeschlagen KoopakillerMicrosoft Community Contributor Donnerstag, 27. Dezember 2012 14:53
- Bearbeitet KoopakillerMicrosoft Community Contributor Donnerstag, 27. Dezember 2012 15:14 kleine korrektur am Code
- Bearbeitet KoopakillerMicrosoft Community Contributor Donnerstag, 27. Dezember 2012 15:49
- Bearbeitet KoopakillerMicrosoft Community Contributor Donnerstag, 27. Dezember 2012 15:50
- Als Antwort markiert Robert BreitenhoferMicrosoft Contingent Staff, Moderator Mittwoch, 9. Januar 2013 13:34
-
Donnerstag, 27. Dezember 2012 14:07Boa ging aber schnell, danke aber jetzt kommt ein Fehler ( nicht definiert) bei regex.match zu meiner Verteidigung ich bin Neuling in VB :D
-
Donnerstag, 27. Dezember 2012 14:13
Füge noch das entsprechende Import am Dateianfang hinzu:
Imports System.Text.RegularExpressions
oder zeige auf das kleine rote Viereck unter dem letzten Buchstaben von Regex, klicke auf das auftauchende Fehlersymbol und klicke danach auf den Link "Importieren Sie "System.Text.RegularExpressions".
Diese schnelle Fehlerkorektur gibts bei vielen Sachen in Visual Studio ;)
Koopakiller [kuːpakɪllɐ] | Webseite | Code Beispiele | Facebook
-
Donnerstag, 27. Dezember 2012 14:29ausgezeichnet das Programm läuft ! Danke ich wünsche dir schöne Feiertage, hast mir den tag gerettet :D ! danke nomma
-
Donnerstag, 27. Dezember 2012 15:04
ok jetzt gibt er den Fehler
Fehler 1 Fehler bei der Überladungsauflösung, da keine zugreifbare "Input" diese Anzahl von Argumenten akzeptiert. C:\Users\Akif\Desktop\Form1.vb 19 36 Palindrom-Tester 1.2
was ist da zu machen ? -
Donnerstag, 27. Dezember 2012 15:13
In welcher Zeile tritt denn der Fehler auf? Ich nehme mal an, das Input, also das was du überprüfen möchtest nicht deklariert ist:Dim Input As String = "MeinInput" If Not Regex.Match(Input, "^[a-zA-Z0-9]*$").Success Then Console.WriteLine("Falsche Eingabe") End If
Koopakiller [kuːpakɪllɐ] | Webseite | Code Beispiele | Facebook
- Bearbeitet KoopakillerMicrosoft Community Contributor Donnerstag, 27. Dezember 2012 15:50
-
Donnerstag, 27. Dezember 2012 15:26jetzt trifft kein fehler mehr auf aber es funktioniert nicht, vielleicht hab ich ein Logik fehler hier ist er.
Imports
System.Text.RegularExpressions
Public
Class Form1
'Palindrom Tester
'Thomas Schuhmacher
'11084110
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'Eingabe und Variablen deklarieren
Dim Input, Kleinbuchstabe As String
Dim Laenge As Integer
Dim erlaubteZeichen = "qwertzuiopasdfghjklyxcvbnm"
'Eingaben Auslesen, Groß in Kleinbuchstaben wandeln
Input = TextBox1.Text
Kleinbuchstabe = LCase(Input)
Laenge = Len(Input)
If Not Regex.Match(Input, "[a-zA-Z0-9]*").Success Then
TextBox2.Text = (
"Falsche Eingabe")
ElseIf Input = StrReverse(Input) Or
Kleinbuchstabe = StrReverse(Kleinbuchstabe)
Then
TextBox2.Text =
"Palindrom !"
Else
TextBox2.Text =
"kein Palindrom !"
End If
End Sub
End
Class
-
Donnerstag, 27. Dezember 2012 15:28
Imports System.Text.RegularExpressions Public Class Form1 'Palindrom Tester 'Thomas Schuhmacher '11084110 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 'Eingabe und Variablen deklarieren Dim Input, Kleinbuchstabe As String Dim Laenge As Integer Dim erlaubteZeichen = "qwertzuiopasdfghjklyxcvbnm" 'Eingaben Auslesen, Groß in Kleinbuchstaben wandeln Input = TextBox1.Text Kleinbuchstabe = LCase(Input) Laenge = Len(Input) If Not Regex.Match(Input, "[a-zA-Z0-9]*").Success Then TextBox2.Text = ("Falsche Eingabe") ElseIf Input = StrReverse(Input) Or Kleinbuchstabe = StrReverse(Kleinbuchstabe) Then TextBox2.Text = "Palindrom !" Else TextBox2.Text = "kein Palindrom !" End If End Sub End Class -
Donnerstag, 27. Dezember 2012 15:29
wenn du dir das angucken könntest wäre ich dankbar vielleicht hab ich einen Logik fehler :)
-
Donnerstag, 27. Dezember 2012 15:39
Ich glaube, der Logikfehler liegt in meinem Regex, man muss Ihn so einstellen, das er die gesamte Zeichenkette überprüfen sol und nicht nur ob Irgendein Ausschnitt stimmt:
If Not Regex.Match(Input, "^[a-zA-Z0-9]*$").Success Then
^ und $ sorgen dafür das alles durchsucht wird.
PS: Du solltest die erlaubten Zeichen, vielleicht eher in den Regex rein schreiben, sonst hat erlaubteZeichen wenig Sinn. ;)
Dim erlaubteZeichen = "qwertzuiopasdfghjklyxcvbnm" '... If Not Regex.Match(Input, "["& erlaubteZeichen &"]*").Success Then
Es würde da auch a-z reichen (Die Regex-Klasse wandelt das dann in abcde...xyz um). Wobei man vielleicht auch noch Großbuchstaben einbeziehen sollte.
Koopakiller [kuːpakɪllɐ] | Webseite | Code Beispiele | Facebook
- Als Antwort markiert Robert BreitenhoferMicrosoft Contingent Staff, Moderator Mittwoch, 9. Januar 2013 13:34
-
Donnerstag, 27. Dezember 2012 17:30wir sind dem ziel näher nur diesmal kommt bei jedem Wort das kein Palindrom ist und großgeschrieben wurde der Text falsche Eingabe :(
-
Donnerstag, 27. Dezember 2012 17:33habs hingekriegt, yeeey ich danke dir vom herzen ! ich wünsche dir noch schöne Feiertage du hast mich dieses weinachten reichlich beschenkt ! :D :D
-
Donnerstag, 27. Dezember 2012 20:48
Hallo 10 Deutsche Mark (Super)
In einer Textbox eigent sich das Keypress Event zum Filtern von Eingaben:
Private Sub ComboBox1_KeyPress(ByVal sender As System.Object, _ ByVal e As System.Windows.Forms.KeyPressEventArgs) _ Handles cbxEnterText.KeyPress Dim allowedChars As String = "0123456789ABCDEFabcdef" Dim found As Boolean For i As Integer = 1 To allowedChars.Length If e.KeyChar = GetChar(allowedChars, i) Then found = True Exit For End If Next If Not found Then e.Handled = True End If End Sub
Vielleicht hilft Dir das. (Zurück zur DM!)
Gruss Ellen
(VB2008 Express, VB2010 Express, VST2008 professional) Ellens Codegallerie
- Bearbeitet Ellen Ramcke Donnerstag, 27. Dezember 2012 20:50

