TextBox der Reihe nach nach Zeichen Durchsuchen

  • VB.NET

Es gibt 14 Antworten in diesem Thema. Der letzte Beitrag () ist von Vatter.

    TextBox der Reihe nach nach Zeichen Durchsuchen

    Hiho!

    Ich arbeite derzeit an einem kleinen Programm und bräuchte hilfe!

    Folgendes:

    Ich suche eine Möglichkeit, einen Text in einer TextBox nach Zeichen zu durchsuchen. Dies soll aber nach einem Rythmus vorgehen (Also mit einem Timer).

    Beispiel: TextBox enthält 0100101101011
    -> timertick: wenn textbox an 1. stelle = 0 ist dann aktion 1
    -> timertick: wenn textbox an 1. stelle = 1 ist dann aktion 2
    -> timertick: wenn textbox an 2. stelle = 0 ist dann aktion 1
    -> timertick: wenn textbox an 2. stelle = 1 ist dann aktion 2
    -> timertick: wenn textbox an 3. stelle = 1 ist dann aktion 1
    -> timertick: wenn textbox an 3. stelle = 1 ist dann aktion 2
    usw.

    ich hoffe ihr versteht was ich meine...

    MFG und DANKE für eventuelle Hilfe!

    Jarhead
    Also in einer globalen Variable speicherst du die Stelle in der Textbox (Anfabgs null)
    Im Timer_Tick Event überprüfst du dann ob der Wert an der aktuellen Stelle 1 oder 0 ist.
    Jenach Ergebnis, führst du eine andere Aktion aus.
    Beispiel:

    VB.NET-Quellcode

    1. Dim stelle As Integer = 0
    2. Private Sub Timer_Tick ... Handles Timer1.Tick
    3. If TextBox1.Text.SubString(stelle,1) = "0" Then
    4. aktion1
    5. ElseIf TextBox1.Text.SubString(stelle,1) = "1" Then
    6. aktion2
    7. Else
    8. Ungültiger Eintrag
    9. End If
    10. End Sub


    Grüsse
    Pascal
    danke für die promte antwort!

    es funktioniert nur leider nicht ganz...
    Ich habe dein Beispiel so umgeschrieben, dass das Prog. den Text in der Textbox durchgeht und erstmal wenn er eine 0 gefunden hat bei label1 1nen dazuzählt und bei 1 bei label2.
    Es Zeigt sich aber, das das Prog bei jedem tick nur bei label1 einer dazuzählt wird, und das immerweiter...

    Hier mal der gesammte Code:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim stelle As Integer = 0
    3. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    4. Label2.Text = "0"
    5. Label1.Text = "0"
    6. End Sub
    7. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    8. If TextBox1.Text.Substring(stelle, 1) = "0" Then
    9. Label1.Text += 1
    10. ElseIf TextBox1.Text.Substring(stelle, 1) = "1" Then
    11. Label2.Text += 1
    12. Else
    13. End If
    14. End Sub
    15. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    16. Timer1.Enabled = True
    17. End Sub
    18. End Class
    Ups ich hab doch glatt vergessen, dass die Variable "stelle" bei jedem Tick um 1 erhöht werden muss..

    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim stelle As Integer = 0
    3. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    4. Label2.Text = "0"
    5. Label1.Text = "0"
    6. End Sub
    7. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    8. If TextBox1.Text.Substring(stelle, 1) = "0" Then
    9. Label1.Text += 1
    10. ElseIf TextBox1.Text.Substring(stelle, 1) = "1" Then
    11. Label2.Text += 1
    12. Else
    13. End If
    14. stelle += 1
    15. End Sub
    16. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    17. Timer1.Enabled = True
    18. End Sub
    19. End Class



    Grüsse
    Pascal
    Im Else Block gibst du eine Messagebox aus:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim stelle As Integer = 0
    3. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    4. Label2.Text = "0"
    5. Label1.Text = "0"
    6. End Sub
    7. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    8. If TextBox1.Text.Substring(stelle, 1) = "0" Then
    9. Label1.Text += 1
    10. ElseIf TextBox1.Text.Substring(stelle, 1) = "1" Then
    11. Label2.Text += 1
    12. Else
    13. MessageBox.Show("Ungültiges Zeichen")
    14. End If
    15. stelle += 1
    16. End Sub
    17. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    18. Timer1.Enabled = True
    19. End Sub
    20. End Class


    Grüsse
    Pascal
    das wäre falsch...

    VB.NET-Quellcode

    1. ElseIf Not TextBox1.Text.Substring(stelle, 1) = "0" Or Not TextBox1.Text.Substring(stelle, 1) "1" Then
    2. End If

    das wäre richtig...
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---

    jvbsl schrieb:

    ElseIf Not TextBox1.Text.Substring(stelle, 1) = "0" Or Not TextBox1.Text.Substring(stelle, 1) "1" Then
    Nönö, wäre auch nich richtich :D
    ElseIf Not TextBox1.Text.Substring(stelle, 1) = "0" Or Not TextBox1.Text.Substring(stelle, 1)= "1" :thumbup:
    :thumbsup: Seit 26.Mai 2012 Oppa! :thumbsup: