Listbox , Mehrere Listboxen speichern und laden

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Listbox , Mehrere Listboxen speichern und laden

    Hey guten abend,

    Ich möchte 4 listboxen abspeichern
    in den my.settings oder .dat datei. und natürlich auch wieder
    readen :)

    denke ich müsste splitten,
    habe aber keinen plan wie dass geht :O

    aktueller source code:möchte aber 4 listboxen saven und readen :(

    VB.NET-Quellcode

    1. Public Sub ListBox_Save(ByVal ListBox As ListBox, _
    2. ByVal sFile As String)
    3. ' Inhalt einer ListBox speichern
    4. Dim oStream As IO.StreamWriter
    5. Dim i As Short
    6. oStream = New IO.StreamWriter(sFile)
    7. For i = 0 To ListBox.Items.Count - 1
    8. oStream.WriteLine(ListBox.Items(i))
    9. Next
    10. oStream.Close()
    11. End Sub
    12. Public Sub ListBox_Read(ByVal ListBox As ListBox, _
    13. ByVal sFile As String)
    14. ' Inhalt einer ListBox speichern
    15. Dim oStream As IO.StreamReader
    16. Dim sLine As String
    17. ' ListBox löschen
    18. ListBox.Items.Clear()
    19. ' Existsiert die Datei?
    20. Dim oFile As New IO.FileInfo(sFile)
    21. If oFile.Exists() = True Then
    22. oStream = New IO.StreamReader(sFile)
    23. ' Datei zeilenweise auslesen
    24. Do
    25. sLine = oStream.ReadLine()
    26. If IsNothing(sLine) Then Exit Do
    27. ListBox.Items.Add(sLine)
    28. Loop
    29. oStream.Close()
    30. End If
    31. End Sub
    32. Private Sub cmdSave_Click(ByVal sender As System.Object, _
    33. ByVal e As System.EventArgs) Handles cmdSave.Click
    34. ' ListBox speichern
    35. Dim sFile As String
    36. sFile = Application.StartupPath & "\Liste.dat"
    37. ListBox_Save(ListBox1, sFile)
    38. End Sub
    39. Private Sub cmdClear_Click(ByVal sender As System.Object, _
    40. ByVal e As System.EventArgs) Handles cmdClear.Click
    41. ' Inhalt der ListBox löschen
    42. ' (dient nur zur besseren Demonstration)
    43. ListBox1.Items.Clear()
    44. End Sub
    45. Private Sub cmdRead_Click(ByVal sender As System.Object, _
    46. ByVal e As System.EventArgs) Handles cmdRead.Click
    47. ' ListBox einlesen
    48. Dim sFile As String
    49. sFile = Application.StartupPath & "\Liste.dat"
    50. ListBox_Read(ListBox1, sFile)
    51. End Sub

    mfg .weed

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „.weed“ ()

    Listboxen kann man nicht abspeichern - man kann nur Daten abspeichern (auf den tieferen Sinn dieses Klugschisses kommste erst, wenndedich mal dafür interessierst, Daten und Gui getrennt zu behandeln)

    Ansonsten vermute ich mal, dass in deine Listboxen einfache Strings drinne sind?

    die könnteste in eine StringCollection kopieren, und pro Listbox an ein als StringCollection angelegtes Setting zuweisen.
    Das ganze ist im Prinzip einfach und elegant ... ;)

    VB.NET-Quellcode

    1. Dim b As New Formatters.Binary.BinaryFormatter
    2. Dim ms As New IO.MemoryStream
    3. Dim lb As New ListBox
    4. lb.Items.Add("ABC")
    5. lb.Items.Add("CDE")
    6. Dim r = From p In lb.Items Select p
    7. b.Serialize(ms, r.ToArray)
    8. lb.Items.Clear()
    9. ms.Seek(0, IO.SeekOrigin.Begin)
    10. lb.Items.AddRange(DirectCast(b.Deserialize(ms), Object()))
    11. Debug.Print(lb.Items(0).ToString)


    Den Stream kann man dann natürlich speichern wo man will.
    bräuchte eventuell
    kommentare mit saven der 4 listboxen und readen der 4 listboxen
    einen source, da meiner irgendwie ein fehler enthält..
    und er will es nicht speichern und readen :O
    brauche immer noch hilfe..
    danke erstmal für die leute die helfen wollten! :thumbsup:

    .weed schrieb:

    da meiner irgendwie ein fehler enthält..
    Ersetze nicht Deinen Code mit Fehlern durch einen C&P-Code, den Du ggf. nicht verstehst.
    Poste Deinen Code und schreibe, wie es gehen soll und was nicht geht.
    Dann wird Dir geholfen. :thumbup:
    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!