Datei auslesen und in Liste ausgeben

  • VB.NET

Es gibt 13 Antworten in diesem Thema. Der letzte Beitrag () ist von DeltaForce.

    Datei auslesen und in Liste ausgeben

    Hallo Leute,
    Ich habe mal eine Frage.
    Ist es möglich wenn ich jetzt eine Datei (.txt) habe mit folgendem Inhalt habe :
    Eintrag1|Eintrag2|Eintrag3|Eintrag4|Eintrag5|
    Diese auszulesen und in VB in einer Liste ausgeben ?

    Mfg Björn

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Björn“ ()

    Meinst Du so was:

    VB.NET-Quellcode

    1. Dim txt As String = System.IO.File.ReadAllText(DEINE_DATEI)
    2. 'txt = "Eintrag1|Eintrag2|Eintrag3|Eintrag4|Eintrag5|"
    3. Dim parts() As String = txt.Split("|"c)
    4. Dim ll As New List(Of String)
    5. ll.AddRange(parts)
    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!
    Ich würde das ja in einem Schritt machen =)

    VB.NET-Quellcode

    1. Dim DATA as string() = System.IO.File.ReadAllText(MYPATH).Split(cchar("|"))

    oder Ggf

    VB.NET-Quellcode

    1. Dim DATA as List(Of String) = System.IO.File.ReadAllText(MYPATH).Split(cchar("|")).ToList()

    Agita schrieb:

    Ich würde das ja in einem Schritt machen
    :S
    Wenn dann irgend wo was klemmt kommt ein Hilferuf und er sucht sich dumm und dümmer.
    Außerdem lässt sich ein Programm in etwas mehr Zeilen besser lesen und verstehen. :D
    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!
    Neue Einträge bedeuet wenn beim ersten auslesen ist Eintrag1|Eintrag2|Eintrag3|Eintrag4|Eintrag5| und dann mit neuen Einträgen meine ich dann das die Datei dan so aussieht Eintrag1|Eintrag2|Eintrag3|Eintrag4|Eintrag5|Eintrag6|Eintrag7|....


    Edit by Manschula: Unnötiges Vollzitat entfernt!

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

    Ansonsten die Differenz (neue Elemente) hinzufügen:

    VB.NET-Quellcode

    1. ll.AddRange(parts2)
    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!
    Richtig. :D
    Und hör endlich auf, die Beiträge über Dir zuzitieren.
    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!
    ok ^^
    Ok habe es mal wie oben gemacht.

    VB.NET-Quellcode

    1. Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
    2. Dim txt As String = System.IO.File.ReadAllText("C:\Users\xxxxxxxxx\Documents\Visual Studio 2010\Projects\xxxxx\bin\Debug\anocwhite.txt")
    3. 'txt = "Eintrag1|Eintrag2|Eintrag3|Eintrag4|Eintrag5|"
    4. Dim parts() As String = txt.Split("|"c)
    5. Dim ll As New List(Of String)
    6. ll.AddRange(parts)
    7. End Sub


    ich erhalte ein weißes Feld

    Björn schrieb:

    ich erhalte ein weißes Feld
    Wo?
    Es wurde noch kein GUI-Control frequentiert.
    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!
    Du hast den Code, der den Inhalt für die ListBox vorbereitet, in das SelectedIndexChanged-Ereignis der ListBox geschrieben. Dieses Ereignis wird aber erst ausgelöst, wenn der Benutzer ein Element auswählt, was er nicht kann, weil die ListBox noch nicht gefüllt wurde.
    Wenn du doppelt auf dein Steuerlement im Designer klickst, kommst du meist immer zu der Methode, die ausgelöst wird, wenn der Benutzer an diesem Steuerelement was macht. Beim Button ist das, wenn er darauf klickt, bei der ListBox, wenn er ein Element aus der Liste anklickt. Blutige Anfänger haben damit oft ihre Probleme, wenn sie sich unerfahren ins Gefecht werfen, ohne überhaupt eine Ahnung von objektorientierter Progammierung zu haben.
    Deswegen musst du den Code zum Befüllen der ListBox wo anders hinschreiben. Zum Beispiel, wenn sich die Form öffnet, also in das Load-Ereignis der Form. Klick dazu doppelt auf die Form (auf die Titelleiste der Form im Designer) und du bist beim Load-Ereignis, welches gefeuert wird, wenn die Form sich öffnet. Schreib also *dort* hinein deinen Code zum Befüllen.

    Und dann musst du die in ll gespeicherten Elemente noch der ListBox hinzufügen.