mehrere Listviews speichern & laden

  • VB.NET

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

    mehrere Listviews speichern & laden

    Hallo,
    ich möchte die Inhalte mehrere Listviews speichern.

    Hab nichts genaues über mein Problem gefunden...

    Hier der Code:

    Save:

    VB.NET-Quellcode

    1. Private Sub SaveListViewItems(ByVal lv As ListView, ByVal path As String)
    2. Using Writer As New System.IO.BinaryWriter(System.IO.File.Open(path, System.IO.FileMode.Create, System.IO.FileAccess.Write))
    3. For Each Item As ListViewItem In lv.Items
    4. For Each Subitem As ListViewItem.ListViewSubItem In Item.SubItems
    5. Writer.Write(Subitem.Text)
    6. Next
    7. Next
    8. End Using



    Load:

    VB.NET-Quellcode

    1. Private Sub LoadListViewItems(ByVal lv As ListView, ByVal path As String)
    2. Using Reader As New System.IO.BinaryReader(System.IO.File.Open(path, System.IO.FileMode.Open, System.IO.FileAccess.Read))
    3. While Reader.BaseStream.Position < Reader.BaseStream.Length
    4. With lv.Items.Add(Reader.ReadString())
    5. For i As Integer = 1 To lv.Columns.Count - 1
    6. .SubItems.Add(Reader.ReadString())
    7. Next
    8. End With
    9. End While
    10. End Using
    11. End Sub



    Momentan lade ich diese im Form1 load ereigniss so:

    VB.NET-Quellcode

    1. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    2. LoadListViewItems(lstBeispiel1, "pfad1")
    3. LoadListViewItems(lstBeispiel2, "pfad2")
    4. LoadListViewItems(lstBeispiel3, "pfad3")
    5. LoadListViewItems(lstBeispiel4, "pfad4")
    6. End Sub



    und speicher diese beim schließen der Form so:

    VB.NET-Quellcode

    1. Private Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
    2. SaveListViewItems(lstBeispiel1, "pfad1")
    3. SaveListViewItems(lstBeispiel2, "pfad2")
    4. SaveListViewItems(lstBeispiel3, "pfad3")
    5. SaveListViewItems(lstBeispiel4, "pfad4")
    6. End Sub



    Alles Funktioniert auch sehr super! Mein Problem ist jetzt nur, dass ich keine 4+ Textdateien in meinem Programmordner haben will.
    Gibt es vlt. eine möglichkeit alles in einer Textdatei zu Speichern? Oder irgentetwas anderes?

    MFG: S01L0KE
    @S01L0KE:: Das ist die falsche Herangehensweise. Hantiere mit Daten, das LV dient deren Anzeige.
    Lade die Daten, bearbeite sie, zeige sie im LV an und speichere sie.
    Und wo wir gerade dabei sind: Steig auf ein DataGridView um.
    Gugst Du hier.
    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!

    S01L0KE schrieb:

    die Daten speichern und laden
    Daten werden in Variablen gehalten, tabellarische Daten in DataTables. In diesen werden Daten bearbeitet.
    Ein LV / DGV usw. dient der Anzeige von Daten (ggf. Eingabe), nicht aber der Datenbe/verarbeitzng.
    Tabellen werden gespeichert: MyDataTable.SaveXml(PFAD) bzw. MyDataTable.LoadXml(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!
    insbesondere, da du mehrere Tabellen speichern willst, ist dein Problem höchstwahrscheinlich ein datenbänkerisches: nämlich dass Beziehungen zwischen den Datensätzen bestehen.
    Falls dem so ist kann man das problemlos ohne Datenbank lösen, aber nicht ohne datenbänkerische Denke: Datenbänkerei-Einstieg
    Insbesondere gugge die VierViews, weil da kann man glaub auf den Geschmack kommen ;)

    diylab schrieb:

    in die Hand gedrückt?
    Und wer hat die ausgedrüuckt :?: :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!