Wert in TXTdatei suchen-gefundene Line in Label ausgeben.

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von stas_12.

    Wert in TXTdatei suchen-gefundene Line in Label ausgeben.

    Hallo an Alle :) ,

    Ich will ein Textbox1 Wert in einer Textdatei suchen und gefundene Line in Label1 ausgeben.

    Diese Code hab ich in Internet gefunden, wie könnte ich es für meine Idee nutzen ?( ?
    Diese Code sucht einen Wert den ich in eine Textbox eingebe in einer Textdatei und die Zeile mit dem gefundenen Wert wird in einer neue Textdatei gespeichert.

    VB.NET-Quellcode

    1. Dim stream1 As New System.IO.FileStream("C:\Temp\2.txt", IO.FileMode.Open, IO.FileAccess.Read)
    2. Dim reader1 As New System.IO.StreamReader(stream1)
    3. Dim stream2 As New System.IO.FileStream("C:\Temp\3.txt", IO.FileMode.Create, IO.FileAccess.Write)
    4. Dim writer1 As New System.IO.StreamWriter(stream2)
    5. Do Until reader1.EndOfStream = True
    6. Dim zeile As String = reader1.ReadLine
    7. If zeile.Contains(TextBox1.Text) = True Then
    8. writer1.WriteLine(zeile)
    9. reader1.Close()
    10. writer1.Close()
    11. Exit Sub
    12. End If
    13. Loop
    14. reader1.Close()
    15. writer1.Close()


    Ich freue mich auf eure Ideen. :)
    Danke im Voraus

    VB.NET-Quellcode

    1. For Each Line As String in IO.File.ReadAllLines("Pfad\Datei.txt")
    2. If Line.Contains("Zeichenfolge") Then
    3. Label1.Text = Line
    4. End If
    5. Next



    Mal kurz aus'm Kopf, sollte klappen


    link_275
    Hello World
    :thumbup: Fielen dank! Das Funktioniert super!
    In dem zweitem Vorschlag war ein kleiner Fehler, glaub ich, den bei mir hat er eine Zeilennummer zu wenig angezeigt! :)
    Ich hab in der Zeile "Dim Linie As String = 0 " statt 0 die 1 hin geschrieben so zeigt es die Zeilennummer korrekt an! ^^
    Nein das ist kein Fehler. Er deklariert die Variable "Linie" mit dem Wert 0. Er springt in die Schleife, der Wert ist immer noch 0. Erst wenn ein Schleifendurchlauf fast abgeschlossen ist, wird Linie um 1 hochgezählt.
    Lösen kannst du das, indem du Variable "Linie" am anfang den Wert 1 zuweist und den Code ansonsten so lässt wie er ist, ODER du lässt den Wert bei 0 und schiebst "Linie += 1" als erste Anweisung in der Schleife ganz oben rein.

    Zudem hast du auch die Möglichkeit, die Zeilen über .Count zu zählen:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    3. Dim i As Integer = 1
    4. For i = 1 To IO.File.ReadAllLines(My.Computer.FileSystem.SpecialDirectories.Desktop & "\fragen.txt").Count - 1
    5. 'Hier muss eigentlich nichts weiter rein...
    6. Next
    7. Label1.Text = i
    8. End Sub
    9. End Class



    link_275 :thumbup:
    Hello World