Wert über Textbox eingeben

  • VB.NET

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

    Wert über Textbox eingeben

    Moin allerseits,

    ich bin noch neu auf dem VB-Gebiet (Ich nutze VB 2010 Express). Deshalb habe ich eine Frage an euch. Ich bin dabei ein kleines Programm zu schreiben. Hierzu habe ich ein Form gestaltet, dass durch drücken eines Buttons eine Textdatei einliest. Diese Textdatei wird in eine Richtextbox eingelesen. Ich möchte nun über Textboxen in dem Form, Werte eingeben, die aus der Richtextbox ausgelesen bzw. gefunden werden sollen. Diese Werte sollen dann in einer Listbox ausgegeben werden, also in welcher Zeile sie stehen. Ich möchte zb vorgeben: 1003128 bis 1004250. In der Zeile, die herausgefunden wird, möchte ich dann noch einen weiteren Wert auslesen, der "unbekannt" ist. letzteres konnte ich schon realisieren, allerdings allgemein für quasi jede Zeile.
    Meine Frage ist nun, wie ich die vorgegebenen Werte, die in die Textbox eingegeben wurden, finden kann?
    Vielen Dank schon mal für die Hilfe im Voraus!!! :)
    Hallo nocheinmal,
    die Contains-Methode hat super funktioniert. Allerdings habe ich nun das Problem, dass alle Zeilen rausgeschrieben werden, auch diejenigen, die nicht den Wert enthalten.

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Paffes“ ()

    Also, es ist so, dass sich die Textdatei immer in drei zusammenhängende Textzeilen teilt. In der ersten Zeile befindet sich die vorgegebene Nummter aus der Textbox. Der Wert, der gefunden werden soll, befindet sich meistens in der dritten Zeile. Ich habe es hinbekommen, diese drei Zeilen zusammen zu einer zu fassen und mir den Wert, der gesucht ist, rausschreiben zu lassen. Ich schicke anbei meine Programmierung mit.

    VB.NET-Quellcode

    1. If RichTextBox1.Text.Contains(TextBox1.Text) Then
    2. If Mid(zeile, 1, 21) = "**erufkaifnakernkalfuenfka" Then 'Sucht erufkaifnakernkalfuenfka
    3. i = z
    4. zeile_komplett = ""
    5. gefunden = False
    6. Do 'Löscht Enter zwischen einzelnen Zeilen und fügt alle Zeilen, die zu **erufkaifnakernkalfuenfka gehören zusammen
    7. zeile_komplett = zeile_komplett + zeile
    8. i = i + 1
    9. zeile = RichTextBox1.Lines(i)
    10. If Mid(zeile, 1, 21) = "*hgungfbgsgfvsvdfsfgmjj;" Then
    11. gefunden = True
    12. End If
    13. Loop Until gefunden = True


    Mit einer weiteren Schleife finde ich dann den gesuchten Wert. Diese Schleife habe ich hier jetzt mal nicht abgebildet. Ich vermute, dass der Fehler in den zwei if-anweisungen dort am Anfang liegt. Ich weiß aber nicht, wie ich es anders programmieren kann. Wie gesagt, die Listbox gibt mir jetzt alle Zeilen mit dem gesuchten Wert aus und nicht, wie gewünscht, nur die eingegebene.

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

    Paffes schrieb:

    VB.NET-Quellcode

    1. Loop Until gefunden = True
    Du hast eine Endlosschleife, wenn der Text nicht gefunden wurde.
    Wenn Du sagst, dass das bloß 3 Zeilen sind, dann mach ne For-Schleife und teste hinterher das gefunden-Flag ab:

    VB.NET-Quellcode

    1. gefunden = False
    2. For j = z To z + 2
    3. ' bla
    4. If BEDINGING Then
    5. gefunden = True
    6. Exit For
    7. End If
    8. Next
    9. If gefunden Then
    10. ' gut
    11. Else
    12. ' schlecht
    13. 'Exit Sub
    14. End If

    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Nein, die Textdatei geht über 10.000 Zeilen, aber sie teilt sich immer in 3 zeilen, in denen quasi das gleiche steht. Diese drei zeilen müssen zusammengefasst werden, um den "unbekannten" WErt zu finden. Das habe ich soweit auch hinbekommen. Der Fehler liegt eher in dem Vorgeben des Wertes durch die Textbox, denke ich.

    Paffes schrieb:

    Nein
    Ja.
    Mach Deine Äußere Schleife mit dem Laufindex z mit Step 3.
    Ansonsten mach da einen Haltepunkt rein und steppe die Routine Zeile für Zeile durch. Gugst Du hier.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!