Announcement

Collapse
No announcement yet.

Einstellungen speichern

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Einstellungen speichern

    Hallo,

    wie kann ich benutzereinstellung in eine text/xml-datei und beim neustart in die anwendung wieder einlesen. bin für jeden tip dankbar.

    grüße paul

  • #2
    Hallo,

    das folgende Beispielprojekt demonstriert, wie Anwendungsdaten als Properties einer eigenen Klasse über <b>XmlSerializer</b> in eine XML-Datei geschrieben und von dort wieder ausgelesen werden können. Die XML-Datei wird im eigenen Programmverzeichnis angelegt bzw. gesucht und dient ein Ersatz für die Ablage der Konfigurationsdaten in der Registry bzw. in einer "alten" INI-Datei.

    <b>Schritt 1: Klasse kapselt die Konfigurationsdaten als Eigenschaften ein</b>
    <pre>
    Public Class VBNETXMLConfigCls
    <br>
    Private FSrv As String
    Private FIP As String
    Private FConfigData As DateTime
    <br>
    Public Sub New()
    ' Serialisierung -> Standard-Konstruktur muss deklariert sein
    End Sub
    <br>
    Public Sub New(ByVal sSrv As String, ByVal sIP As String, ByVal aDate As DateTime)
    FSrv = sSrv
    FIP = sIP
    FConfigData = aDate
    End Sub
    <br>
    Public Property Srv() As String
    Get
    Return FSrv
    End Get
    Set(ByVal Value As String)
    FSrv = Value
    End Set
    End Property
    <br>
    Public Property IP() As String
    Get
    Return FIP
    End Get
    Set(ByVal Value As String)
    FIP = Value
    End Set
    End Property
    <br>
    Public Property ConfigDate() As Date
    Get
    Return FConfigData
    End Get
    Set(ByVal Value As Date)
    If Value < Now Then
    FConfigData = Value
    Else
    FConfigData = Date.Now
    End If
    End Set
    End Property
    <br>
    End Class
    </pre>
    <b>Schritt 2: Aufruf im Formular</b>
    <pre>
    Imports System.Xml
    Imports System.Xml.Serialization
    Imports System.IO
    ...
    Private aConfigFile As String = "OSXMLConfigData.xlm"
    <br>
    Private Sub buttonSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles buttonSave.Click
    Dim aCfg As New VBNETXMLConfigCls(textBox1.Text, textBox2.Text, _
    DateTime.Parse(textBox3.Text))
    Dim aXmlSer As New XmlSerializer(GetType(VBNETXMLConfigCls))
    Dim aXmlWrt As New XmlTextWriter(aConfigFile, New System.Text.UTF8Encoding())
    aXmlSer.Serialize(aXmlWrt, aCfg)
    aXmlWrt.Close()
    statusBar1.Text = "Daten wurden gespeichert"
    End Sub
    <br>
    Private Sub buttonLoad_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles buttonLoad.Click
    Dim aCfg As VBNETXMLConfigCls
    Dim aXmlSer As New XmlSerializer(GetType(VBNETXMLConfigCls))
    Dim aFS As New FileStream(aConfigFile, FileMode.Open)
    Dim aXMLRdr As New XmlTextReader(aFS)
    aCfg = CType(aXmlSer.Deserialize(aXMLRdr), VBNETXMLConfigCls)
    aXMLRdr.Close()
    ' Werte einsetzen
    textBox1.Text = aCfg.Srv
    textBox2.Text = aCfg.IP
    textBox3.Text = aCfg.ConfigDate.ToString()
    statusBar1.Text = "Daten wurden eingelesen"
    End Sub
    </pre>
    Über das <b>PropertyGrid</b>-Control kann auf einfachem Weg auch eine fertige Benutzeroberfläche für die eigene Klasse mit den Konfigurationsdaten bereitgestellt werden

    Comment

    Working...
    X