Entwickler-Ecke

IO, XML und Registry - Konfigurationsdatei erstellen


Stefanie - Mi 14.03.07 11:18
Titel: Konfigurationsdatei erstellen
Hallo zusammen!

Ich befasse mich zum ersten mal mit config-files...

nun:
Ich möchte eine Konfigurationsdatei erstellen, die Benutzereinstellungen speichert.
Ich habe aber keine Ahnung, wie ich beginnen soll, oder was ich tun soll...habe weder in
der MSDN was nützliches gefunden noch hier im Forum.

Danke für die Hilfe!


Moderiert von user profile iconChristian S.: Topic aus C# - Die Sprache verschoben am Mi 14.03.2007 um 10:19


Martin1966 - Mi 14.03.07 13:50

Mich würde es wundern wenn es in C# keine Möglichkeiten gibt INI Dateien zu schreiben/zu lesen. Such doch mal danach. ;-)

Lg Martin


Stefanie - Mi 14.03.07 13:52

doch, diese Möglichkeit gibt es. Ich möchte es aber mit app.config lösen...
ist das nicht möglich?


Martin1966 - Mi 14.03.07 13:53

Ich kenne mich mit C# nicht aus. Deshalb hatte ich INI Dateien als Suchbegriff vorgeschlagen. ;-)


Stefanie - Mi 14.03.07 14:00

hihi, ach so...danke trotzdem für den gut gemeinten Tipp! =)


Christian S. - Mi 14.03.07 16:29

Hallo!

Das geht recht einfach. Im Solution Explorer kannst Du für Deine Anwendung unter "Properties" -> "Settings.settings" einen Editor für Einstellungen aufrufen. Ein Setting besteht aus einem Namen, einem Typen, einem Scope (also ob's jeweils für einen Nuzter oder für alle gilt) und einen Standardwert.

Beim Anlegen der Settings über diesen Editor, wird im Hintergrund eine Klasse erzeugt, welche Deine Einstellungen hält.

Wenn Du eine Einstellung mit Namen "someSetting" für eine Anwendung mit Namespace "CSharpTestApp" angelegt hast, kannst Du auf diese so zugreifen (was IMHO deutlich eleganter als INI-Dateien ist):

CSharpTestApp.Properties.Settings.Default.someSetting;

Du kannst CSharpTestApp.Properties noch in die using-Abteilung aufnehmen, dann greifst Du nur mit Settings.Default.someSetting drauf zu.

Geänderte Einstellungen werden ganz einfach über Settings.Default.Save() gespeichert und sollten (IIRC) beim Programmstart automatisch wieder geladen werden. Es wird automatisch ein Verzeichnis und eine Xml-Datei im Profilordner des Nutzers angelegt und die Daten dort geschrieben.

Grüße
Christian


Stefanie - Mi 14.03.07 17:07

wow, vielen Dank¨! hast mir sehr weiter geholfen! =)


DenniZ - Sa 14.04.07 16:54

Hey,

ich bin auch momentan dran, eine .ini Datei auszulesen. Leider hänge ich auch daran :-/
Mit einer Hilfe kann ich leider auch nicht sehr viel Anfangen, könntest du evtl. einen Screenshot machen? :) oder "noch genauer" erklären *grins* oder eben eine Anleitung die auch ich blicke, hab gestern über eine Stunde bei Google verbracht *seufz*!


Kha - Sa 14.04.07 17:04

Hier wurde doch noch überhaupt keine Lösung für Ini-Dateien gepostet :gruebel: *BrillePutz* :shock: .
Um Ini-Dateien von älteren Programmen auszulesen, kannst du eine der Klassen auf CodeProject.com benutzen.


Chryzler - Fr 12.10.07 21:20

user profile iconChristian S. hat folgendes geschrieben:
Es wird automatisch ein Verzeichnis und eine Xml-Datei im Profilordner des Nutzers angelegt und die Daten dort geschrieben.

Hmm, also die Einstellungen auslesen und wieder speichern geht schon, aber bei mir wird eine app.config direkt im Verzeichnis der EXE erstellt (Release-Ordner), nicht im Profilordner (Anwendungsdaten?). Unter Vista würde dann afaik immer UAC aufpoppen, weil er die Konfigdatei im Programmeverzeichnis verändern will. Wäre gut, wenn man den Speicherort ändern könnte.


Christian S. - Fr 12.10.07 21:28

Dann hast Du den Scope falsch gewählt. Du kannst definieren, ob eine Einstellung pro User oder pro Anwendung gelten soll. Die User-Einstellungen werden im Profilverzeichnis gespeichert.


Chryzler - Fr 12.10.07 21:35

Die Scopes sind alle auf User gestellt. :?


Christian S. - Fr 12.10.07 21:44

Was vielleicht für Verwirrung sorgt: Selbstverständlich werden die Initialwerte der Settings in der app.config gespeichert (sonst wären die Settings leer, wenn keine Benutzer-Datei vorhanden wäre), aber bei einem Aufruf von Save-Methode werden die für den Nutzer gültigen Werte in eine Datei im Profil-Ordner gespeichert.


Chryzler - Fr 12.10.07 22:09

Ach jetzt ist alles klar. Ich suchte immer nur unter C:\Dokumente und Einstellungen\User\Anwendungsdaten nach einen Ordner, hab jetzt aber herausgefunden, dass er unter C:\Dokumente und Einstellungen\User\Lokale Einstellungen\Anwendungsdaten gespeichert wird. :)