Textbox Wörter filtern

  • VB.NET

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

    Textbox Wörter filtern

    Hi.

    So kann man ja das 2 Wort einer Textbox als Messagebox ausgeben:

    VB.NET-Quellcode

    1. Dim txt As String = Textbox1.Text
    2. Dim result As String = txt.Split(CChar(" "))(1)
    3. MsgBox(result)


    Doch wie kann ich ALLES nach dem ersten Wort in einer Messagebox ausgeben?

    Danke sehr.

    Mfg. TGS :)
    Hi
    gibt übrigens auch string.IndexOf und Remove, aber nafets3646 Fall gibt genau den anderen Teil aus, insofern einfach Substring(IndexOf(...)). Außerdem unterstützt String.Split auch einen count-Parameter.
    Will dir ja nicht zu nahe treten, aber wie wär's wenn du dir echt mal die Grundlagen aneigenest? Zumindest VS selber, damit du selber auf die Sachen kommen kannst. Da ist nach über 600 Beiträgen noch ziemlich wenig da, wenn du so Probleme damit hast, meinst du nicht?

    Gruß
    ~blaze~
    also wer jetzt was dazulernen will, der guckt im ObjectBrowser nach der von @~blaze~: angegebenen String.Split-Überladung, die den count-Parameter akzeptiert. Weil das ist die perfekte Lösung.
    Wer obiges nicht versteht ("Überladung", "Parameter"), bitte nachfragen.
    @horstfh:: machma Option Strict On!
    Besser als die Split-Lösung wäre wahrscheinlich sogar

    VB.NET-Quellcode

    1. Shared Function FindEndOfMatchGroupIndex(ByVal input As String, ByVal match As Predicate(Of Char)) As Integer
    2. Return FindEndOfMatchGroupIndex(input, 0, match)
    3. End Function
    4. Shared Function FindEndOfMatchGroupIndex(ByVal input As String, ByVal startIndex As Integer, ByVal match As Predicate(Of Char)) As Integer
    5. Dim wasmatch As Boolean = False
    6. For i As Integer = startIndex To input.Length - 1
    7. Dim v As Char = input(i)
    8. If wasmatch AndAlso Not match(v) Then
    9. Return i
    10. End If
    11. wasmatch = match(v)
    12. Next
    13. Return -1
    14. End Function

    FindEndOfMatchGroupIndex (die Benennung hinkt, ich weiß) sucht nach dem ersten Treffer, für den match zutrifft und überspringt dann alle nachfolgenden Elemente, für das match ebenfalls zutrifft. Das führt dazu, dass beim String eben auch mehrere Whitespace-Charaktäre übersprungen werden, bis der erste nicht-Whitespace-Buchstabe auftritt.

    VB.NET-Quellcode

    1. Public Shared Sub Test()
    2. Dim str As String = "abc " + vbTab + "def"
    3. str = str.Substring(FindEndOfMatchGroupIndex(str, AddressOf Char.IsWhiteSpace))
    4. MessageBox.Show(str)
    5. End Sub


    Gruß
    ~blaze~