ZUFAELLIG ein Wort in einer txt finden, wenn es mehrmals vorhanden ist

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Visual_Prog.

    ZUFAELLIG ein Wort in einer txt finden, wenn es mehrmals vorhanden ist

    VB.NET-Quellcode

    1. Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
    2. Dim auswahlListe As New List(Of String)
    3. Dim lese As String = "Pfad"
    4. For Each zeile As String In System.IO.File.ReadAllLines(lese)
    5. If zeile.Contains(TextBox3.Text) Then
    6. auswahlListe.Add(zeile)
    7. End If
    8. Next
    9. MsgBox(String.Join(vbNewLine, auswahlListe.ToArray))
    10. End Sub


    Hiermit kann von einem gesuchten Wort die Zeile auslesen.

    Problem: Wenn das Wort in der Datei mehrmals vorhanden ist, liest es immer das als erstes aufkommende.

    ich möchte eine zufallsfunktion einbauen, damit von allen gleichen wörtern in der txt eines ausgesucht wird.
    Wenn es alles die selben Wörter sind wie kannst du dann wissen das er nur das erste ausliest?

    Aber veruschs mal damit (ungetestet):

    VB.NET-Quellcode

    1. Class Program
    2. Shared ReadOnly _rnd As New System.Random(Environment.TickCount)
    3. Private Shared Sub Main(args As String())
    4. Dim path = New FileInfo("PATH")
    5. Dim hits = File.ReadAllLines(path.FullName).Where(Function(line) line.Contains("test")).ToList()
    6. For i As Integer = 0 To 99
    7. Console.WriteLine(hits(_rnd.Next(0, hits.Count)))
    8. Next
    9. Console.ReadKey(False)
    10. End Sub
    11. End Class

    VB.NET-Quellcode

    1. Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
    2. Dim _rnd As New Random
    3. Dim hits = File.ReadAllLines(Pfad).Where(Function(line) line.Contains(TextBox3.Text)).ToList()
    4. Dim auswahlListe As New List(Of String)
    5. Dim lese As String = "PFad""
    6. For Each zeile As String In System.IO.File.ReadAllLines(lese)
    7. If zeile.Contains(TextBox3.Text) Then
    8. auswahlListe.Add(zeile)
    9. End If
    10. Next
    11. TextBox4.Text = CStr(hits(_rnd.Next(0, hits.Count)))
    12. End Sub


    Yiiaaah danke : )