VB 2008 | Überprüfen, String nur mit Zahlen

Hallo,

ich wollte mal nach einer Möglichkeit fragen, wie ich den Inhalt einer Textbox überprüfen kann, ob sich nur Zahlen darin befinden.
Ich habe zwar schon das: http://www.vbarchiv.net/tipps/details.php?id=543 gefunden, hilft mir aber nicht wirklich weiter. Hier wird nur das Tippen verhindert. Allerdings möchte ich, dass man auch noch etwas aus der Zwischenablage einfügen kann und das die Überprüfung erst stattfindet, wenn ich sie benötige.
Bedanke mich schonmal für jede Antwort.

Mit freundlichen Grüßen,

sagitta1793

Hallo,

aus dem Kopf:

 Dim nurzahlen = True
 Dim test As String
 For Each zeichen As Char In test
 If (Not zeichen.IsDigit) Then
 nurzahlen = False
 Exit For
 End If
 Next

Grüße
PerryRhodan

Hallo,

Überprüfen kannst du einen String mittels Regulären Ausdrücken oder via Isnumeric :smile:

Für Reguläre musst du aber system.Text.RegularExpressions importieren :smile:
Eine kleine Erläuterung zu RegularExpressions findest du hier
http://www.activevb.de/rubriken/kolumne/kol_19/regex…

MfG Alex

Hallo Perry,

man sollte auch bedenken das ein Komma oder ein Punkt als Eingabe zulaessig ist :smile:

MfG Alex

Hallo Alex,

das solltest Du doch jetzt wohl selbst hinbekommen? Sonst würde ich Dir empfehlen, VisualStudio wieder zu deinstallieren.

Grüße
PerryRhodan

Hallo PerryRhodan,

ich bekommen die Fehlermeldung: Fehler bei der Überladungsauflösung, da keine zugreifbare „IsDigit“ diese Anzahl von Argumenten akzeptiert.

Mit freundlichen Grüßen,

sagitta1793

Hallo PerryRhodan,

das solltest Du doch jetzt wohl selbst hinbekommen? Sonst
würde ich Dir empfehlen, VisualStudio wieder zu
deinstallieren.

Für mich stellt das kein Problem, aber vielleicht dem Fragesteller?
Wenn man eine Antwort mit Source postet, sollte man auch an die Sachen denken :wink:

Ausserdem aus dem Stehgreif, daechte muss der Syntax folgendermassen lauten.

For Each zeichen As Char In Test
 If Char.IsDigit(zeichen) then ... 
Next

Wie du nun hier ein Komma oder ein Punkt ohne eine zweite Abfrage abfragen möchtest, ist mir ein Raetsel. Da bevorzuge ich schon lieber Regular Expressions oder Isnumeric :wink:

MfG Alex

Die Tatsache, dass man booleansche Ausdrücke mit sowas wie „or“ verknüpfen kann, ist Dir aber bekannt?

RegularExpressions sind an dieser Stelle mit Kanonen auf Spatzen geschossen und absolut unperformant.

Sicher ist mir das bekannt, wobei du dann aber bei einer 2 Abfrage wärst, mal abgesehen davon das dann orelse angebracht wäre.
Aber soll man nicht die Mittel nutzen die einem das Framework bietet?
Willst du einen String manipulieren, bist du dann auch der Meinung das man & oder + nehmen sollte und nicht den Stringbuilder, weil es dann wieder mit Kanonen auf Spatzen geschossen wäre?

Man sollte bedenken das es sich hier scheinbar um einen Anfaenger handelt der ein Problem hat. Auch bin ich der Meinung das man genau ihnen dann die Möglichkeiten aufzeigt, die er / sie hat. Welchen Weg er / sie dann nimmt, das ist dann letztendlich ihre Entscheidung!
Oder bist du dann auch der Meinung, nur weil er / sie das ein oder andere nicht beherscht und kein Buch zur Hand hat, das er / sie .Net wieder deinstallieren soll ?

Im diesen Sinne … Alex der nun einige Tage nicht da ist …

Die Tatsache, dass man booleansche Ausdrücke mit sowas wie
„or“ verknüpfen kann, ist Dir aber bekannt?

RegularExpressions sind an dieser Stelle mit Kanonen auf
Spatzen geschossen und absolut unperformant.

Dim zahl As Double
If [Double].TryParse(meinString, zahl) Then
’ Zahl (mit oder ohne Komma)
Else
’ Keine Zahl
End If

Der Vorteil: Man kann die Zahl gleich als Double benutzen!