Der Index ist Ausserhalb des Arrays

  • VB.NET

Es gibt 24 Antworten in diesem Thema. Der letzte Beitrag () ist von Littleboy2009.

    Hab das jetzt mal ganz anders gelöst!
    Ihr braucht:
    3x Label (Label1,Label2,Label4)
    1x Windows Form
    1x TextBox
    1x Button
    1x Textdatei
    1x Timer

    Erstmal unter Public Class Form1:

    VB.NET-Quellcode

    1. Dim Aktion As Long



    In Label1 schreibt ihr nur 0 rein und Setzt Visible auf False
    Label2 schreibt ihr Vokabel:
    rein. In Label4 Schreibt ihr auch ne 0 Rein udn tut es hinter das Label Vokabeln:
    Dann Nennt ihr den Button Überprüfen
    Folgenden Code in den Button:

    VB.NET-Quellcode

    1. Dim lines() As String = IO.File.ReadAllLines("C:\Users\Mike\Documents\Verlauf.txt")
    2. If TextBox1.Text = lines(Label1.Text) Then
    3. MsgBox("OK")
    4. Label1.Text += 2
    5. TextBox1.Text = ""
    6. Aktion += 2
    7. Label4.Text += 1
    8. End If


    Dann geht ihr ins Form_Load folgenden Code dort rein:

    VB.NET-Quellcode

    1. Timer1.Start()
    2. Dim lines() As String = IO.File.ReadAllLines("C:\Users\Mike\Documents\Verlauf.txt")
    3. Label3.Text = lines(1)
    4. Aktion = 1


    Und in den Timer:

    VB.NET-Quellcode

    1. Dim lines() As String = IO.File.ReadAllLines("C:\Users\Mike\Documents\Verlauf.txt")
    2. Label3.Text = lines(Aktion)



    Euer Gesamter Code sollte dann so aussehen:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim Aktion As Long
    3. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    4. Dim lines() As String = IO.File.ReadAllLines("C:\Users\Mike\Documents\Verlauf.txt")
    5. If TextBox1.Text = lines(Label1.Text) Then
    6. MsgBox("OK")
    7. Label1.Text += 2
    8. TextBox1.Text = ""
    9. Aktion += 2
    10. Label4.Text += 1
    11. End If
    12. End Sub
    13. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    14. Timer1.Start()
    15. Dim lines() As String = IO.File.ReadAllLines("C:\Users\Mike\Documents\Verlauf.txt")
    16. Label3.Text = lines(1)
    17. Aktion = 1
    18. End Sub
    19. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    20. Dim lines() As String = IO.File.ReadAllLines("C:\Users\Mike\Documents\Verlauf.txt")
    21. Label3.Text = lines(Aktion)
    22. End Sub
    23. End Class


    Textdatei Beispiel:
    Spoiler anzeigen
    test1
    test2
    Ja
    Yes
    Nein
    No
    Doof
    Dumb
    U-bahn
    Subway
    Zug
    Train
    Apfel
    Apple


    P.S. Ihr müsst
    C:\Users\Mike\Documents\Verlauf.txt Durch eure Url euerer Textdatei Ersetzen.

    Tut mir leid Falls der Code viel zu lang ist und man es viel
    kürzer machen könnte
    Du Brauchst:
    - 2 Button zum Starten der Abfrage (Button2) und zum nächste Vokabelabfragen (Button1)
    - 2 Textboxen (textbox1 in der Textbox wird ein Deutsches Wort vorgegeben und du musst in Textbox 2 das dazugehörige in Englisch schreiben)

    deine Textdatei muss so aussehen :



    Quellcode

    1. Affe|Ape~Strasse|street~Baum|Tree


    und jetzt der code :
    Spoiler anzeigen

    VB.NET-Quellcode

    1. 'Lokale Deklaration
    2. Dim deutschevokabeln As New List(Of String)
    3. Dim englischevokabeln As New List(Of String)
    4. Dim aktuellevokabel As Long = 0
    5. 'Form-Load Ereignis
    6. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    7. For Each zeilen As String In IO.File.ReadAllText("Der Pfad zur deiner Textdatei").Split("~")
    8. deutschevokabeln.Add(zeilen.Split("|")(0))
    9. englischevokabeln.Add(zeilen.Split("|")(1))
    10. Next
    11. End Sub
    12. 'Der Button zum Starten der Vokabelkontrolle
    13. Private Sub KryptonButton2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles KryptonButton2.Click
    14. aktuellevokabel = 0
    15. TextBox1.Text = deutschevokabeln.Item(aktuellevokabel)
    16. End Sub
    17. 'Der Button für die nächste Vokabel :
    18. Private Sub KryptonButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles KryptonButton1.Click
    19. If TextBox2.Text = englischevokabeln.Item(aktuellevokabel).ToString Then
    20. aktuellevokabel += 1
    21. TextBox1.Text = deutschevokabeln.Item(aktuellevokabel)
    22. TextBox2.Text = Nothing
    23. Else
    24. MsgBox("Diese Vokabel wurde falsch eingegeben!")
    25. End If
    26. End Sub



    Ich hoffe ich konnte einigen damit helfen ! :thumbsup: