Listrbox einträge laden

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von SystemUnknow.

    Listrbox einträge laden

    Hallo,
    ich arbeite zurzeit an einem Programm :P
    Es hat eine Listview/Listbox mit Detail spalten...
    es sind 5 spalten.
    jetzt habe ich 5 Textboxen,mit denen ich zu den einzelnen Listbox Einträge hinzufügen kann trag ich in Textbox 2 was en kommt es in der 2 spalte und so weiter.
    jetzt will ich das ganze aber auch speichern und laden können am besten in eine .txt Datei...aber wie?
    ich habe es versucht zu machen aber da lad bei mir immer nur die erste spalte.
    ich hoffe ihr könnt mir helfen,
    danke im vorraus,
    Niklas

    VB.NET-Quellcode

    1. Public Class produkt 'Private myFileInfo As New IO.FileInfo("C:\Settings\Productview\ListeN.txt")
    2. Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click Me.Hide() main.Show() End Sub
    3. Private Sub produkt_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    4. End Sub
    5. Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdAdd.Click ListView1.Items.Add(New ListViewItem(New String() {(Textname.Text), (Textpreis.Text), (Textanzahl.Text), (Textmindest.Text)})) End Sub Private Sub cmdSave_Click(ByVal sender As System.Object, _ByVal e As System.EventArgs) Handles cmdSave.Click
    6. ' ListBox speichern Dim sFile As String
    7. sFile = Application.StartupPath & "\Liste.dat" ListView_Save(ListView1, sFile) End Sub
    8. Private Sub cmdClear_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles cmdClear.Click
    9. ' Inhalt der ListBox löschen ' (dient nur zur besseren Demonstration) ListView1.Items.Clear() End Sub
    10. Private Sub cmdRead_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles cmdRead.Click
    11. ' ListBox einlesen Dim sFile As String
    12. sFile = Application.StartupPath & "\Liste.dat" ListView_Read(ListView1, sFile)
    13. End Sub Public Sub ListView_Save(ByVal Listview As ListView, _ ByVal sFile As String)
    14. ' Inhalt einer ListBox speichern Dim oStream As IO.StreamWriter Dim i As Short
    15. oStream = New IO.StreamWriter(sFile)
    16. For i = 0 To Listview.Items.Count - 1 oStream.WriteLine(Listview.Items(i)) Next oStream.Close() End Sub
    17. Public Sub ListView_Read(ByVal listview As ListView, _ ByVal sFile As String)
    18. ' Inhalt einer ListBox speichern Dim oStream As IO.StreamReader Dim sLine As String
    19. ' ListBox löschen listview.Items.Clear()
    20. ' Existsiert die Datei? Dim oFile As New IO.FileInfo(sFile)
    21. If oFile.Exists() = True Then oStream = New IO.StreamReader(sFile) ' Datei zeilenweise auslesen Do sLine = oStream.ReadLine() If IsNothing(sLine) Then Exit Do listview.Items.Add(sLine) Loop oStream.Close() End If End Sub
    22. Private Sub Label4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label4.Click
    23. End Sub
    24. Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
    25. End Sub
    26. Private Sub Textpreis_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Textpreis.TextChanged
    27. End SubEnd Class


    und hier nochmal:



    Public Class produkt
    'Private myFileInfo As New IO.FileInfo("C:\Settings\Productview\ListeN.txt")


    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
    Me.Hide()
    main.Show()
    End Sub


    Private Sub produkt_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    End Sub


    Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdAdd.Click
    ListView1.Items.Add(New ListViewItem(New String() {(Textname.Text), (Textpreis.Text), (Textanzahl.Text), (Textmindest.Text)}))
    End Sub
    Private Sub cmdSave_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles cmdSave.Click

    ' ListBox speichern
    Dim sFile As String

    sFile = Application.StartupPath & "\Liste.dat"
    ListView_Save(ListView1, sFile)
    End Sub

    Private Sub cmdClear_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles cmdClear.Click

    ' Inhalt der ListBox löschen
    ' (dient nur zur besseren Demonstration)
    ListView1.Items.Clear()
    End Sub

    Private Sub cmdRead_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles cmdRead.Click

    ' ListBox einlesen
    Dim sFile As String

    sFile = Application.StartupPath & "\Liste.dat"
    ListView_Read(ListView1, sFile)

    End Sub
    Public Sub ListView_Save(ByVal Listview As ListView, _
    ByVal sFile As String)

    ' Inhalt einer ListBox speichern
    Dim oStream As IO.StreamWriter
    Dim i As Short

    oStream = New IO.StreamWriter(sFile)

    For i = 0 To Listview.Items.Count - 1
    oStream.WriteLine(Listview.Items(i))
    Next
    oStream.Close()
    End Sub

    Public Sub ListView_Read(ByVal listview As ListView, _
    ByVal sFile As String)

    ' Inhalt einer ListBox speichern
    Dim oStream As IO.StreamReader
    Dim sLine As String

    ' ListBox löschen
    listview.Items.Clear()

    ' Existsiert die Datei?
    Dim oFile As New IO.FileInfo(sFile)

    If oFile.Exists() = True Then
    oStream = New IO.StreamReader(sFile)
    ' Datei zeilenweise auslesen
    Do
    sLine = oStream.ReadLine()
    If IsNothing(sLine) Then Exit Do
    listview.Items.Add(sLine)
    Loop
    oStream.Close()
    End If
    End Sub

    Private Sub Label4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label4.Click

    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

    End Sub

    Private Sub Textpreis_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Textpreis.TextChanged

    End Sub
    End Class
    Sieht ziemlich nach Copy & Paste aus.

    Ich würd es so machen, du hast ja 5 Spalten also gehören je 5 Zeilen der Txt datei zu einer Zeile in der Listview

    Freedom
    Freiheit
    Liberty
    Keine Ahnung
    Blue Ray
    Freedom1
    Freiheit1
    Liberty1
    Keine Ahnung1
    Blue Ray1


    VB.NET-Quellcode

    1. Dim vpr as new IO.Streamreader(application.startuppath & "\liste.dat")
    2. While not vpr.EndOfStream
    3. With Listview1.Items.add(vpr.readline)
    4. .Subitems(1).add(vpr.readline)
    5. .Subitems(2).add(vpr.readline)
    6. .Subitems(3).add(vpr.readline)
    7. .Subitems(4).add(vpr.readline)
    8. End with
    9. End While


    Ich denk das sollte so funzen, habs ausen Kopf geschrieben musst du gegebenfalls nochmal anpassen/verbessern.

    VB.NET-Quellcode

    1. Dim vpr as new IO.Streamreader(application.startuppath & "\liste.dat") 'Hiermit erstellst du dein "Txt-Lesegerät" das mit dem Pfad sollte klar sein
    2. While not vpr.EndOfStream 'Solange die Txt datei nicht zuende gelesen ist, wird der untere Code ausgeführt
    3. With Listview1.Items.add(vpr.readline) 'Hier wird die erste Spalte geladen
    4. .Subitems(1).add(vpr.readline) 'hier die 2.
    5. .Subitems(2).add(vpr.readline) '3. usw.
    6. .Subitems(3).add(vpr.readline)
    7. .Subitems(4).add(vpr.readline)
    8. End with
    9. End While


    Jetzt musst du nur noch deine Txtdatei nach diesen 5er Prinzip speichern du gehst am besten mit einer Schleife jede Spalte durch