PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [VB.Net] Listview einträge in abspeichern und auslesen



Negative
11.08.2009, 20:45
Hi folks, Ich kriegs nicht auf die Reihe die Einträge abzuspeichern (In .txt oder what ever) und dann Auszulesen. Das heist er soll es z.b so speichern: Eintrag1:Sub1:Sub2 Und dann beim Auslesen in die Listview einfügen. Kann mir wer helfen ? Mfg Nehgative

hackerking
11.08.2009, 21:02
Dim SW As New StreamWriter("PATH")
For j = 1 To ListView1.Items.Cout
SW.WriteLine(ListView1.Items(j).Text)
Next i

Negative
12.08.2009, 17:21
Hab es jetz so:


Dim SW As New StreamWriter("C:\text.txt")
For j = 1 To ListView1.Items.Count
SW.WriteLine(ListView1.Items(j - 1).Text)
Next j
SW.Close()

Aber er speichert dann nur den Eintrag ohne SubItems.

Und 2. Wie lese ich jetz die Einträge wieder ein ?

inout
12.08.2009, 18:09
Public Sub LVSave(ByRef LV As ListView, ByVal File As String)
Dim s As String = ""
For I As Integer = 0 To LV.Items.Count - 1
s += LV.Items.Item(I).Text & ":"
For J As Integer = 0 To LV.Items.Item(I).SubItems().Count - 1
s += LV.Items.Item(I).SubItems(J).Text & ":"
Next
s += vbNewLine
Next
System.IO.File.WriteAllText(File, s)
End Sub

Public Sub LVLoad(ByRef LV As ListView, ByVal File As String)
Dim s() As String, t As String, u() As String
s = System.IO.File.ReadAllLines(File)
For Each t In s
u = Split(t, ":")
With LV.Items.Add(u(0), u(1))
For I As Integer = 2 To LV.Columns.Count
.SubItems.Add(u(I))
Next
End With
Next
End Sub
Das ist aber keine optimale Lösung, vor allem wegen dem Trennzeichen.
Schau dir am besten mal ein paar Beispiele zu INI/XML, typisierte Dateien und/oder Datenbanken an.

Negative
12.08.2009, 19:14
WoW danke Inout, Die Save funktion hab ich eingebaut leider speichert er den Eintrag doppelt hintereinander, die Subitems sind richtig (1mal)

Edit: In der Load funktion (hab die .txt richtig gemacht) Krieg ich beim debuggen in der Zeile: .SubItems.Add(u(I))
den Fehler: Der Index war außerhalb des Arraybereichs.

Mfg Nehgative

inout
12.08.2009, 19:35
Das mit den doppelten Eintrag ist schon richtig so. Wenn du das nicht möchtest, musst du die Schleife(n) (für die SubItems) nur von 1 bis Count laufen lassen.
Der Index-Fehler sollte nicht auftreten, wenn du die abgespeicherte Datei nicht mehr änderst.

Negative
13.08.2009, 08:03
In welcher zeile meinst du?

In welcher zeile meinst du?