Eine bestimmte Zeile aus einer Textdatei einlesen

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von mox.

    Eine bestimmte Zeile aus einer Textdatei einlesen

    Hallo,
    Ich habe eine Textdatei mit ca. 500 Zeilen. Nun möchte ich, dass nach dem betätigen eines Button ein Zufallsgenerator eine Zufallszahl im Intervall 1 - 500 generiert. Anschließend soll die Zeile aus der Textdatei ausgelesen werden. welches der generierten Zufallszahl entspricht. Das mit dem Zufallsgenerator habe ich soweit hinbekommen, nur bei dem einlesen einer Zeile aus einer Textdatei tue ich mich schwer! Könnte es mir jemand in einfachen Schritten erklären wie ich dies reallisieren kann ? Danke schonmal von meiner Seite! :)
    Hallo!

    Du kannst die Text-Datei über die statische Klasse File und seines Members ReadAllLines() einlesen.
    ReadAllLines ist ein String-Array, auf dessen Zeilen du über dessen Index zugreifen kannst.

    In C#:

    C#-Quellcode

    1. File.ReadAllLines(PFAD)[Random.Next(1, File.ReadAllLines(PFAD).Length)];


    Was ReadAllLines tut ist (meines Erachtens, eine andere Eventualität käme eigentlich nicht infrage) bei Zeilenumbruch zu splitten.
    Theoretisch könntest du den Text durch .ReadAllText(PFAD) einlesen und splitten bei

    C#-Quellcode

    1. .Split(new string[]{Environment.NewLine});


    .Split gibt ein Array von String zurück und umfasst alle Zeilen des Texts.
    Über dessen Index kannst du eine Zeile selektieren und ausgeben.

    Grüße.
    Und Gott alleine weiß alles am allerbesten und besser.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „φConst“ ()

    Latene schrieb:

    einlesen einer Zeile aus einer Textdatei
    Willst Du tatsächlich bei jeder neuen Zahl die ganze Datei druchflöhen, um an die gesuchte Zeile zu kommen, auch wenn das system sie dann vorhält?
    Lies doch die Datei genau ein Mal ein und hole dann die gesuchte Zeile per Index aus dem bereitliegenden Array.

    VB.NET-Quellcode

    1. Dil lines() = IO.File.ReadAllLines(DEIN_PFAD)
    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!

    VB.NET-Quellcode

    1. 'ausserhalb der sub
    2. Dim mytxt() As String = System.IO.File.ReadAllLines("C:\mytxt.txt")
    3. Dim rnd As New Random()
    4. -------------------------------
    5. 'kommt in die sub
    6. Dim zahl As Integer = rnd.Next(0, mytxt.Length)
    7. MessageBox.Show(mytxt(zahl).ToString)
    Hier könnte meine Signatur stehen.