vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: TextBox, ListBox & ComboBox15.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:

NameText
cmdSaveSpeichern
cmdReadEinlesen
cmdClearListinhalt 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.

 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.