Rubrik: Controls · ListBox & ComboBox | VB-Versionen: VB2005, VB2008 | 03.06.09 |
Heute möchten wir Ihnen zwei Funktionen vorstellen, mit denen sich der Inhalt einer ListBox als (Text-)Datei speichern und wieder einlesen lässt.
''' <summary>
''' Speichert den Inhalt der ListBox in eine Datei
''' </summary>
''' <param name="ListBox">ListBox-Control</param>
''' <param name="Filename">Dateiname der (Text-)Datei</param>
''' <returns>True, wenn erfolgreich, andernfalls False.</returns>
Public Function ListBoxSave(ByVal ListBox As ListBox, ByVal Filename As String) As Boolean
Dim oStream As IO.StreamWriter = Nothing
Dim bResult As Boolean = False
Try
' Stream-Objekt zum Speichern erstellen
oStream = New IO.StreamWriter(Filename, False, System.Text.Encoding.Default)
With ListBox.Items
' Liste durchlaufen und zeilenweise speichern
For i As Integer = 0 To .Count - 1
oStream.Write(.Item(i) & IIf(i < .Count - 1, vbCrLf, ""))
Next
End With
bResult = True
Catch ex As Exception
Finally
' Stream-Objekt schließen
If Not IsNothing(oStream) Then oStream.Close()
End Try
Return (bResult)
End Function
''' <summary>
''' Liest die angegeben Datei aus und füllt die ListBox mit dem Inhalt der Datei
''' </summary>
''' <param name="ListBox">ListBox-Control</param>
''' <param name="Filename">Dateiname der (Text-)Datei</param>
''' <returns>True, wenn erfolgreich, andernfalls False.</returns>
Public Function ListBoxRead(ByVal ListBox As ListBox, ByVal Filename As String) As Boolean
Dim bResult As Boolean = False
' Existiert die angegeben Datei?
If IO.File.Exists(Filename) Then
Try
With ListBox.Items
' ListBox-Inhalt löschen
.Clear()
' Gesamten Inhalt der Datei auslesen
' und als String-Array an die ListBox übergeben
.AddRange(My.Computer.FileSystem.ReadAllText( _
Filename, System.Text.Encoding.Default).Split(vbCrLf))
End With
bResult = True
Catch ex As Exception
End Try
End If
Return (bResult)
End Function
Aufrufbeispiel:
' ListBox-Inhalt speichern
ListBoxSave(ListBox1, "d:\myList.dat")
' ListBox-Inhalt einlesen
ListBoxRead(ListBox1, "d:\myList.dat")