[.NET] VB eigene Config erstellen (einfach)

Dieses Thema im Forum "Programmier Tutorials" wurde erstellt von Silentuser, 27. Oktober 2010 .

Schlagworte:
  1. 27. Oktober 2010
    VB eigene Config erstellen (einfach)

    Hi,

    da ich heute selber lange nach so einer lösung gesucht habe, dacht ich mir ich mach mal ein kleines tut, evlt. braucht es ja jemand.

    Visual Studio 2010 bietet ja die möglichkeit für seine Application Einstellungen zu setzen und zu speichern. Dabei gibt es zwei möglichkeiten, entweder diese Einstellungen beziehen sich auf den Benutzer oder auf die Anwendung (also das Programm). Das ist soweit schonmal recht schön und gut, das Problem jedoch ist das die Config für den Benutzer nicht an dem Ort der Anwenung gespeichert ist. Und die Config für die Anwendung leider nur Read Only ist. D.h. die einzelnen Einstellungen können wärend der Laufzeit nicht verändert werden.

    Da ich aber eine Config haben wollte welche direkt in dem Ordner der Applikation liegt (damit Sie auch manuell geändert werden kann) und ich aber auch die möglichkeit brauchte wärend der Laufzeit des Programmes die Config zu bearbeiten. d.h einstellunge zu speichern, habe ich mir eine eigene kleine Config geschrieben.

    Das ganze ist sehr einfach aufgebaut, ohne XML Serialisierung oder benutzung der Ini API!

    Das ganze besteht eigendlich nur aus einer Text Datei welche ich auslese und/oder neu schreibe.
    Der größte trick dabei ist wohl eine bestimmte Zeile auszulesen.

    Jetzt aber zum Code:
    (bei mir heißt die Config Datei config.config und benutzt habe ich .net 3.5)


    zuerst brauchen wir ein paar Variablen in welche wir die Daten der Config schreiben

    Code:
    Dim Setting1 as String
    Dim Setting2 as String
    Dim Setting3 as String
    Dim Setting4 as String
    Dim Setting5 as String
    Dim Setting6 as String
    Dim Setting7 as String
    
    Beim Programm start überprüfen wir erstmal ob eine Config Datei bereits existiert:

    Code:
     [COLOR=SeaGreen]' Programm start (hier wird die GroupBox1 geladen)[/COLOR]
     Private Sub GroupBox1_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GroupBox1.Enter
    
     [COLOR=SeaGreen]
    
     ' Falls keine Config existiert eine erstellen ((Application.StartupPath = der Pfad aus 
     'welchem das Programm gestartet wurde[/COLOR]
    
     If My.Computer.FileSystem.FileExists(Application.StartupPath & "\Config.Config") = False Then
    
     [COLOR=SeaGreen]' Aufrufen des Subs CreateConfig (Bitte weiter unten weiterlesen)[/COLOR]
    
     CreateConfig()
    
     End If
    
     [COLOR=SeaGreen]' Falls eine Config existiert dann auslesen[/COLOR]
     
     Dim reader As New StreamReader(Application.StartupPath & "\Config.Config")
     Dim Zeilen As New List(Of String)
    
    [COLOR=SeaGreen]' jede zeile einer List hinzufügen[/COLOR]
     While Not reader.EndOfStream = True
    
     Zeilen.Add(reader.ReadLine)
    
     End While
     reader.Close()
    [COLOR=SeaGreen]
    ' Die bestimmten Zeilen aus dem Array in Varialben Speichern (Das Array beginnt mit 0, dh. 'Zeile 1 wäre Array 0 usw.[/COLOR]
     Setting1= Zeilen.ElementAt(1)
     Setting2= Zeilen.ElementAt(4)
     Setting3 = Zeilen.ElementAt(7)
     Setting4 = Zeilen.ElementAt(10)
     Setting5 = Zeilen.ElementAt(13)
     Setting6 = Zeilen.ElementAt(16)
     Setting7 = Zeilen.ElementAt(19)
    
     
     [COLOR=SeaGreen] 'als beispiel:
     'Text Felder mit Daten aus Config / Variablen füllen[/COLOR]
     TextBox_setting1.Text = Setting1
     TextBox_setting2.Text = Setting2
     TextBox_setting3.Text = Setting3
     TextBox_setting4.Text = Setting4
     TextBox_setting5.Text = Setting5
     TextBox_setting6.Text = Setting6
     TextBox_setting7.Text = Setting7
    
    
     End Sub
    Sub Config erstellen:

    Code:
     Public Sub CreateConfig()
    
    [COLOR=SeaGreen]
    ' Hier wird die Config erstellt mit den Daten aus den Variablen (das False heißt das die Daten überschrieben werden und nicht angehängt werden)[/COLOR]
    
     Dim writer As New StreamWriter(Application.StartupPath & "\config.config", False)
    
     writer.WriteLine("Einstellung 1")
     writer.WriteLine(Setting1)
     writer.WriteLine("------------------")
     writer.WriteLine("Einstellung 2")
     writer.WriteLine(Setting2)
     writer.WriteLine("------------------")
     writer.WriteLine("Einstellung 3")
     writer.WriteLine(Setting3)
     writer.WriteLine("------------------")
     writer.WriteLine("Einstellung 4")
     writer.WriteLine(Setting4)
     writer.WriteLine("------------------")
     writer.WriteLine("Einstellung 5")
     writer.WriteLine(Setting5)
     writer.WriteLine("------------------")
     writer.WriteLine("Einstellung 6")
     writer.WriteLine(Setting6)
     writer.WriteLine("------------------")
     writer.WriteLine("Einstellung 7")
     writer.WriteLine(Setting7)
     writer.WriteLine("------------------")
    
     writer.Close()
    
     End Sub
    
    letzendlich kann noch ein Button eingebaut werden um die Einstellunge aus z.b. den Textfeldern zu Speichern, oder man macht dies beim beenden des Programms

    Code:
    [COLOR=SeaGreen]'' Einstellungen Speichern[/COLOR]
     Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button9.Click
    
    
    [COLOR=SeaGreen]' Daten aus den Textfeldern erneut in den Variablen speichern[/COLOR]
    
     Setting1 = TextBox_setting1.Text
     Setting2 = TextBox_Setting2.Text
     Setting3 = TextBox_Setting3.Text
     Setting4= TextBox_Setting4.Text
     Setting5 = TextBox_Setting5.Text
     Setting6 = TextBox_Setting5.Text
     Setting7 = TextBox_Setting5.Text
    
    
    
     [COLOR=SeaGreen] ' Config Datei neu erstellen[/COLOR]
    
     CreateConfig()
    
     MsgBox("Configuration saved!")
    
     End Sub
    
    Das wars eigendlich schon im großen und ganzen, eigentlich recht einfach, und ein brauchbarer weg für eine Config Datei welche im Programmverzeichniss liegt und beschreibbar ist.

    Die Variablen könnte man natürlich auch weg lassen und direkt die Textboxen oder was auch immer nehmen.

    Die Config kann natürlich auf diesem weg beliebig gestaltet und erweitert werden.

    Es ist sicher nicht die eleganteste Lösung, aber für viele Scenarien sollte es durch kleine anpassungen ausreichend sein.

    Hasta Pronto
    Silentuser
     
  2. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.