5.2 Wie speichert man ListBox-Einträge?
VB4-VB6
Von: Tobias Schikora [Home]
Ein sehr einfacher Weg, alle Einträge einer ListBox abzuspeichern ist folgender:
Dim i As Integer
Dim ToSave As String
With List1
For i = 0 To .ListCount - 1
ToSave = ToSave & .List(i) & ";" ' Trennzeichen definieren
Next
End With
SaveSetting "Meine Anwendung", "Optionen", "ListBox1", Left$(ToSave, Len(ToSave) - 1)
Hier wird eine Zeichenkette erstellt, die alle Einträge der ListBox, getrennt mit dem Semikolon (;) enthält. Diese wird dann in die Windows-Registrierung geschrieben. Wenn man nun die ListBox wieder mit dem vorherigen gespeicherten Werten füllen möchte, kann man den Wert wieder aus der Registrierung lesen und ihn mit der ab VB6 enthaltenden Split-Funktion aufteilen, wie folgender Code zeigt:
Dim MyString As Variant
Dim i As Integer
MyString = GetSetting("Meine Anwendung", "Optionen", "ListBox1")
MyString = Split(MyString, ";") ' Trennzeichen definieren
With List1
For i = LBound(MyString) To UBound(MyString)
.AddItem MyString(i)
Next
End With
Der Code ist natürlich nur ein Ansatz. Es gibt sehr viele Möglichkeiten, genau dieses Ziel zu erreichen.
Hinweis: Bei diesem Beispiel ist zu beachten, dass die Einträge in der ListBox selbst kein Semikolon beinhalten dürfen. Ansonsten werden die Werte falsch eingelesen und falsch angezeigt. Das Trennzeichen kann selbstverständlich auch geändert werden, dazu werden die zwei Zeilen mit den Kommentaren angepasst.