Finde Fehler im Code nicht :S

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von oxDarkxo.

    Finde Fehler im Code nicht :S

    Ich suche jetzt mindestens seit 2 Stunden nach dem Fehler in diesem kleinen Code aber finde ihn leider nicht :S
    Wahrscheinlich nur etwas falsch gemacht das total logisch ist aber möglicherweise bin ich gerade blind :S

    Der Timer macht einfach nicht weiter.
    Er soll das erste Item in Der Listbox dem Button als Text zuweisen dann das Item der ersten Zeile löschen und mit dem nächsten beginnen.
    Nur funktioniert das irgendwie nicht als ob der Timer nicht weitermachen würde..

    in der 1.txt Datei stehen folgende zeichen

    a
    s
    d
    f

    Hier ist der Code:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim Fehler As Integer = 0
    3. Dim Richtig As Integer = 0
    4. Private Sub Button1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Button1.KeyDown
    5. If e.KeyCode.ToString = Button1.Text Then
    6. Richtig = Richtig + 1
    7. Button1.Enabled = False
    8. Else
    9. Fehler = Fehler + 1
    10. Button1.Enabled = False
    11. End If
    12. End Sub
    13. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    14. RichTextBox1.Text = IO.File.ReadAllText(Application.StartupPath & "\1.txt")
    15. For i = 0 To RichTextBox1.Lines.Count - 1
    16. ListBox1.Items.Add(RichTextBox1.Lines(i))
    17. Next
    18. Timer1.Start()
    19. End Sub
    20. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    21. ListBox1.SelectedIndex = 0
    22. If Not ListBox1.SelectedItem = "end" Then
    23. Button1.Text = ListBox1.Items.Item(0)
    24. ListBox1.Items.Remove(0)
    25. Button1.Enabled = True
    26. Else
    27. Timer1.Stop()
    28. MsgBox("Richtig: " & Richtig & vbNewLine & "Falsch: " & Fehler)
    29. End If
    30. End Sub
    31. End Class

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „oxDarkxo“ ()

    Hallo,

    Ich weiss nicht ob ich dass nur falsch rauslese weil dein Code etwas merkwürdig getaggt ist, aber solltest du nicht wenn du alle Zeilen der .txt in eine Richtextbox machst das ganze nicht lieber ohne machen? Ich weiss nicht inwiefern du diese brauchst, aber sonst würde ich das lieber mit

    VB.NET-Quellcode

    1. Dim lines() As String = System.IO.ReadAllLines("txt")
    machen und das dann mit For Each durchlaufen, dann sparst du dir die Richtextbox.

    Zum Timer: lass den timer weg, mach das wieder mit einer for each Schleife (man könnte das auch vor dem befüllen der listbox machen mit lines()).

    Edit: bin gerade nicht am PC und kann DIF deshalb nicht die For Each Schleife coden :(

    RyanTT schrieb:

    Zum Timer: lass den timer weg, mach das wieder mit einer for each Schleife (man könnte das auch vor dem befüllen der listbox machen mit lines()).



    Der Timer soll ja da bleiben damit man eben nur ne gewisse zeit zum drücken hat ;)

    Mit einer For Each Schleife würde der das alles in einem Stück machen das will ich ja nicht ;)
    ich kanns dir nur wärmstens empfehlen: Bitte VB-Tag benutzen - aber richtig

    wenn du möchtest, dass jmd sich mit deinem Code auseinandersetzt, dann solltest du mindestens dafür sorgen, dass man ihn auch lesen kann.

    Aber die Empfehlung kann ich mir eiglich auch sparen - es wird eher eine Empfehlung an die anderen Leser: Nun - ihr seht ja, wie der @oxDarkxo: gute und wichtige und mehrfach gemachte Vorschläge konsequent ignoriert - also erwartet nicht zuviel Resonanz auf eure Hilfs-Vorschläge.

    Ah - Edit: nun hat ers immerhin versucht, aber leider nicht mit der nötigen Sorgfalt, sodass immer noch die Einrückungen fehlen.
    Aber ist ja auch erst kurz dabei - also soll ich mein Gemecker maln bischen zurückhalten :love:


    Fehler glaub gefunden

    VB.NET-Quellcode

    1. ListBox1.Items.Remove(0)
    was glaubst du, was da passiert?

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „ErfinderDesRades“ ()

    Edit by ErfinderDesRades: unnötiges Vollzitat entfernt





    Ich entschuldige mich erstmal wegen der falschen VB-Tags :S

    Ich hatte deine Kommentare anscheinend gestern untergehen lassen vor lauter Wahn meinen Code hinzubekommen :S

    Nochmal Sorry. Wird nicht mehr vorkommen.

    Und dann bedanke ich mich noch für deine Hilfe.

    Hab jetzt aus

    VB.NET-Quellcode

    1. ListBox1.Items.Remove(0)

    VB.NET-Quellcode

    1. ListBox1.Items.RemoveAt(0)


    gemacht.

    Jetzt funktionierts einwandfrei :)

    Danke!! :)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ErfinderDesRades“ ()