[C#) Benutzereingaben speichern

Fisch

Mitglied
Wie kann ich Benutzereingaben speichern?? Wenn ich z.B in
einer Textbox einen Pfad durch den Benutzer angeben lassen möchte,
wie speicher ich das ab, das es beim nächsten Programmstart noch da ist? Muss ich die angaben in einer extra Datei speichern????
 
sobald das programm geschlossen wird, sind auch normalerweise alle eingaben weg. das heisst, dass beim nächsten programmstart alle steuerelemente wieder leer sind.
aber es gibt etliche wege, das zu umgehen...

weg eins: eine textdatei.
wenn das programm beendet wird, schreibst du den inhalt einer textbox in eine textdatei. beim nächsten programmstart liest du den inhalt der datei wieder aus und schreibst den text in die textbox.

weg zwei: eine ini-datei (etwas spezieller als weg eins).
ini-dateien waren früher ein guter weg, um programmeinstellungen dauerhaft zu speichern. solche einstellungen sind z.b. höhe und breite des fensters, schriftarten, und eben auch inhalte von steuerelementen. ini-dateien werden zwar auch als textdatei gespeichert, aber im gegensatz zu normalen textdateien kann man über eine ini-datei die werte gezielt ansprechen.

weg drei: eine datenbank.
ähnlich wie in einer ini-datei kann man in einer datenbank die programmeinstellungen in einer tabelle speichern. dadurch kann man beim programmstart die einzelnen einstellungen gezielt auswählen. zusätzlich kann man durch die zweidimensionale struktur einer tabelle auch mehrere verschiedene einstellungen auswählen.

weg vier: die windows-registrierung.
seit windows 95 hat microsoft anstelle von ini-dateien die windows-registrierung aufgebaut. damit hat man zugriff auf eine hierarchisch angeordnete datenbank, in der man verschiedene einstellungen speichern kann.
in der windows-registrierung werden beispielsweise die zuordnungen für dateitypen gespeichert (also, dass *.txt-dateien mit notepad geöffnet werden).
den registrierungseditor sollte inzwischen fast jeder kennen und einigermassen bedienen können. in c# müsste es auch einige klassen für den umgang mit der registrierung geben.
 
Erstmal vielen Dank für Deine reichhaltige Antwort.
Das mit der Datei habe ich mir ja schon fast gedacht und bis zur Textdatei kann ich Dir folgen.Wie eine *.ini Datei aussieht hab ich ja auch schon gesehen, aber kannst Du mir mal ein kurzes CodeBeispiel geben, wie man darauf gezielter zugreifen kann??
Wäre für die anderen beiden Möglichkeiten natürlich auch nett, aber ich vermute mal das wird wohl etwas komplizierter(oder?), zumal ich eigentlich keine Ahnung von der regedit habe(wusste auch nicht das das schon zum Standard Wissen gehört, ja ja man wird alt)
 
ini-dateien sind zwar durchaus eine gute sache, aber wie gesagt: die stammen noch aus den 16bit-varianten von windows und sind schon etwas in die jahre gekommen. 1995 wurden die dann durch die windows-registrierung abgelöst, aber es gibt sie immer noch.

zur theorie von ini-dateien:
eine ini-datei besteht aus verschiedenen sektionen und jede sektion aus mehreren schlüsseln. wenn man beispielsweise das aussehen eines fensters speichern will, könnte die entsprechende ini-datei so aussehen:
Code:
[StartupPosition]
Left=192
Top=100
Width=640
Height=480
Maximize=0
die sektion heisst dann "StartUpPosition" und enthält die einzelnen schlüssel "Left", "Top", "Width", "Height" und "Maximize". ich hab bis jetzt allerdings nur in delphi damit gearbeitet, also kann ich leider keinen c#-code dazu schreiben...

zum thema registry hilft dir vielleicht dieses tutorial weiter - englischkenntnisse vorausgesetzt. :)
 
Dann Danke ich Euch erstmal, werd mich mal versuchen durchzuwurschteln.
Mal schauen was ich mit meinen bescheidenen Englishkentnissen erreiche.(Falls ihr doch noch ein Link in deutsch habt immer her damit:) )
 
ALLGEMEINER HINWEIS:
INI-Dateien gibt's in dem Sinne unter C# nicht mehr bzw. sollen oder sind nicht mehr angebracht! Besser ist es diese in eine XML-Struktur abzuspeichern. In C# ist dies eigentlich so vorgesehen!

Aber machbar sind INI-Dateien natürlich in C# immer noch! Aber nicht mehr "Up to date"!!!
 
Ok, hab mir schon vorgenommen mich mit dem regedit zu beschäftigen. Was genau heist wieder XML Struktur??
Mir scheint mir fehlt auch noch ganz schön viel Wissen drumrum um die Programmierung
 
Vergiss die Registry!!!!

Warum???
Ganz einfach! C# insbesondere .NET erhebt den Anspruch "plattform" unabhängig zu sein!!! Was es zum heutigen Datum natürlich (noch) nicht ist!

Also, sollte man auch so programmieren!!!! Oder meinst Du UNIX, MAC oder LINUX haben eine Registry????

Deshalb wird in C# bzw. unter .NET die Daten vorzugsweise in eine XML Datei gespeichert! Dies kann auf jedem System gelesen werden, da dies eine genormte Struktur für das Speichern von Daten in einem Textdatei ist!

Natürlich musst es so nicht machen, aber wer weiss, wie lange die Registy noch lebt!!!??? Dann lieber eine INI-Datei schreiben, wenn Dir das Schreiben und Lesen einer XML-Datei zu kompliziert sein sollte!
 
Ok, das sehe ich ein, aber die Frage ob eine XML Datei zu kompliziert ist kann ich nicht beantworten, da mir das nix sagt. Was meinst Du denn?? Ist das zu kompliziert für den Anfang?? Hast Du eventuell dazu ein Tut für Blöde(wenns geht in deutsch). Ich hab natürlich auch keine Lust mich noch mit altem Sch... zu beschäftigen(*.in).
 

Neue Beiträge

Zurück