Rubrik: TextBox, ListBox & ComboBox | 15.11.02 |
ListBox-Inhalt speichern und wieder einlesen (VB.NET) VB-Version: VB5, VB6 | ||
Views: 48.053 |
Wie speichert man den Inhalt einer ListBox? Und wie kann ich eine Datei ineine ListBox einlesen? Das Ganze natürlich unter VB:NET
Starten Sie ein neues Projekt und platzieren Sie eine ListBox und dreiButtons darauf. Die Buttons benennen Sie der Übersichtlichkeit halber wiefolgt:
Name | Text |
cmdSave | Speichern |
cmdRead | Einlesen |
cmdClear | Listinhalt löschen |
Damit wir in der Liste etwas stehen haben, das wir auch speichern können, wird sie zuerst mal mit Einträgen gefüllt:
Private Sub Form1_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load ' Listbox mit Einträgen füllen ListBox1.Items.Add("Eintrag 1") ListBox1.Items.Add("Eintrag 2") ListBox1.Items.Add("Eintrag 3") ListBox1.Items.Add("Eintrag 4") ListBox1.Items.Add("Eintrag 5") End Sub
Nun benötigen wir für die Speichern- und Lesen-Funktion diesen Code:
Public Sub ListBox_Save(ByVal ListBox As ListBox, _ ByVal sFile As String) ' Inhalt einer ListBox speichern Dim oStream As IO.StreamWriter Dim i As Short oStream = New IO.StreamWriter(sFile) For i = 0 To ListBox.Items.Count - 1 oStream.WriteLine(ListBox.Items(i)) Next oStream.Close() End Sub Public Sub ListBox_Read(ByVal ListBox As ListBox, _ ByVal sFile As String) ' Inhalt einer ListBox speichern Dim oStream As IO.StreamReader Dim sLine As String ' ListBox löschen ListBox.Items.Clear() ' Existsiert die Datei? Dim oFile As New IO.FileInfo(sFile) If oFile.Exists() = True Then oStream = New IO.StreamReader(sFile) ' Datei zeilenweise auslesen Do sLine = oStream.ReadLine() If IsNothing(sLine) Then Exit Do ListBox.Items.Add(sLine) Loop oStream.Close() End If End Sub
Für den Aufruf kommen jetzt unsere drei Buttons zum Einsatz:
Private Sub cmdSave_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles cmdSave.Click ' ListBox speichern Dim sFile As String sFile = Application.StartupPath & "\Liste.dat" ListBox_Save(ListBox1, sFile) End Sub Private Sub cmdClear_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles cmdClear.Click ' Inhalt der ListBox löschen ' (dient nur zur besseren Demonstration) ListBox1.Items.Clear() End Sub Private Sub cmdRead_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles cmdRead.Click ' ListBox einlesen Dim sFile As String sFile = Application.StartupPath & "\Liste.dat" ListBox_Read(ListBox1, sFile) End Sub
Starten Sie Ihr Projekt und klicken sie nacheinander auf Speichern, löschen, einlesen.