For Each Anfrage wiederholen

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von Patrick<br>.

    For Each Anfrage wiederholen

    Hallo Leute,

    als erstes freut es mich sehr, als neues Mitglied, hier im Forum zu sein. Leider führt mich der Weg wegen eines Problems her.
    Vorweg entschuldige ich mich vielmals, falls dieser Thread in der falschen Kategorie geschrieben wurde und bitte um Verschiebung.

    VB.NET-Quellcode

    1. Private Sub TextBox1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown
    2. If e.KeyData = Keys.Enter Then
    3. suchen()
    4. End If
    5. End Sub
    6. Sub suchen()
    7. RichTextBox1.Clear()
    8. Dim lines() As String = System.IO.File.ReadAllLines("C:\fragen.txt")
    9. For Each item In lines
    10. If item.ToLower.Contains(TextBox1.Text.ToLower) Then
    11. RichTextBox1.AppendText(item & vbNewLine)
    12. End If
    13. Next
    14. End Sub


    Mein Problem ist wie folgt:
    - Per KeyDown über die TextBox1 gebe ich ein Suchwort ein (z.B. Paris).
    - Er durchsucht die Textdatei und findet die passenden Fragen mit Antworten (z.B. wie in diesem Fall: "An welchem Fluß liegt Paris? = Seine").


    Das funktioniert alles Problemlos, jedoch wenn ich die Suche erneut starten will, durchsucht er nicht mehr die Textdatei bzw. gibt es nicht mehr aus.
    Wo liegt das Problem?

    Ich bitte um eure Hilfe und Lösungen.
    Mit freundlichen Grüßen, Patrick.

    Die Farbe "Rot" ist der Moderation vorbehalten => Formatierung geändert. ~Thunderbolt

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

    Setz einen Haltepunkt und Debugge Schritt für Schritt.

    Ich würde die Datei nur einmalig einlesen und nicht bei jeder Suche. Du solltest auch verhindern das jemand zwei oder mehrmals die Enter Taster hintereinander drückt.
    NETworkManager - A powerful tool for managing networks and troubleshoot network problems!
    Mein Problem bei dem Problem besteht darin, dass ich es nicht nachvollziehen kann. Sollte der o.a. Code komplett sein, dann kann es daran nicht liegen, denn der läuft bei mir. Vielleicht ist das Problem aber auch falsch beschrieben. ich habe folgende Daten in der Textdatei:

    Quellcode

    1. abc
    2. paris
    3. detmold
    4. parissienne
    5. paris seine
    6. An welchem Fluß liegt Paris ? = Seine

    Wenn ich jetzt in die Textbox Paris eintippe, kommen mir die Einträge 2, 4, 5, 6 in die RTB. Wenn ich nochmal Enter drücke, das gleiche. mit pariss nur Eintrag 4. Letztes s gelöscht und Enter => wieder 2, 4, 5, 6.
    Daher ist das Problem von meiner Seite aus nicht nachvollziehbar.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Hallo,

    du musst dann Keydata löschen. Sonst steht im Suchfeld nicht mehr "Paris", sondern "Paris{ENTER.KeyCode} und das kommt in Deiner Textdatei nicht vor.
    Gruß
    Peterfido

    Keine Unterstützung per PN!
    Ich kann das Problem erst dann nachstellen, wenn die TextBox-MultiLine-Property auf True steht. Bei einer "normalen" TextBox wird das Enter nicht Teil des Textes. Vielleicht kannst Du, @peterfido mich kurz aufklären, wie das Problem mit einer SingleLine-TB doch nachstellbar ist.
    Falls die TB MultiLine sein sollte, dann wäre es möglich, das Problem mit folgendem zu umgehen: nach den Codezeilen #3, und #4 aus Post#1 folgendes einfügen: e.SuppressKeyPress = True
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.