Jak wyciągnąc liczby z TextBoxa?

0

9488712525424427b14cc8.pnggggbgbgb.png

jak takie cos zrobić ? (vb.net)

napisałem takie coś, ale to wyciąga wszystkie cyfry..a mi potrzeba aby wyciągało tylko te które są 3-4 lub więcej pod rząd...

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        TextBox2.Clear()

        For Each ch As Char In TextBox1.Text.ToCharArray
            If Char.IsDigit(ch) Then
                TextBox2.Text = TextBox2.Text + ch
            End If
        Next
    End Sub
0

Jeśli działa prawidłowo to dobre;

Ewentualnie możesz wrzucać cyferki do pomocniczej zmiennej łańcuchowej, a po opuszczeniu pętli przepisać wartość ze zmiennej do drugiego pola; Wtedy czyszczenie drugiego pola przed pętlą nie będzie konieczne; Czyli zaktualizujesz zawartość komponentu raz, zamiast za każdym razem, gdy napotkasz cyferkę.

0

wlasciwie to nie moze być ta moja wersja...z racji tego że TextBox1 może mieć taką postać:

3798085-doom-3-bfg-edition

w wyniku czego otrzymam rezultat:

37980853

zamiast:

3798085

i mi potrzeba tylko ten ciąg znaków, bez tej trójeczki dalszej... ;/

czyli potrzebny mi jeszcze jakiś warunek... "jeśli 4 lub więcej liczb pod rząd to dodaj je do textbox2"

0

Czyli znajdź najpierw pierwszą cyfrę i jeżeli ją znajdziesz - w pętli przepisuj znaki dotąd, aż osiągniesz koniec łańcucha źródłowego lub kolejnym znakiem nie będzie cyferka; Dzięki temu pobierzesz tylko pierwszą liczbę z łańcucha, jeżeli jest ich kilka; A jak nie będzie żadnej, to ustawiasz w komponencie wartość sugerowanej zmiennej, czyli pusty łańcuch.

0

Najprościej? Regexp .*?(\d+).* i voila.

0
    Dim tylko_liczby As String

    Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
        tylko_liczby = ""

        For Each ch As Char In TextBox1.Text.ToCharArray
            If Char.IsDigit(ch) Then
                tylko_liczby = tylko_liczby + ch

            End If


            If Not Char.IsDigit(ch) And Not tylko liczby = "" Then
                Exit For
            End If
        Next
        TextBox1.Text = tylko_liczby

    End Sub

takie cos wycudowalem, ma to sens ? xD

1

Bardziej po ludzku to samo:

        Dim OnlyDigits As String = ""
        For Each ch As Char In TextBox1.Text.ToCharArray
            If Char.IsDigit(ch) Then
                OnlyDigits &= ch
            ElseIf OnlyDigits.Length > 0 Then
                Exit For
            End If
        Next
        TextBox1.Text = OnlyDigits

1 użytkowników online, w tym zalogowanych: 0, gości: 1