Autor Beitrag
Kleinohr
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 20



BeitragVerfasst: Mi 31.03.10 10:02 
Guten Morgen zusammen

Gibt es eine Möglichkeit den Inhalt von Textboxen in einer Datei abzuspeichern ? Falls ja kann diese Datei dann wieder ausgelesen werden, so dass sich die einzelnen Textboxen mit ihren Werten wieder füllen. Kann leider keine passenden Tipps finden.

mfg

Kleinohr
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: Mi 31.03.10 10:18 
Guten Morgen,

du kannst über DataBinding bequem Werte von einer Quelle (zum Beispiel ein Objekt oder DB) an eine Eigenschaft von einem Control binden. Wenn du zum Beispiel ein serialisierbares Objekt hast, kannst du 1) diese Objekt an die (Text) Eigenschaft deiner TextBox binden und b) es (de-)serialisieren und somit Konsistent zu machen.

Gruß Daniel
Kleinohr Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 20



BeitragVerfasst: Mi 31.03.10 10:21 
Danke Dir schon mal für die Info

hast du vielleicht ein kurzes Quellcodebeispiel wie sowas aussieht. habe noch keinen Plan wie es funktionieren kann.
Werde jetzt mal nach DataBinding suchen

gruß

Kleinohr
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: Mi 31.03.10 10:59 
Also zuerst solltest du dir gedanken machen, was das für Daten sind und in wie fern sie zusammen gehören.

Meistens purzeln und springen dann ("Daten")Objekte raus ;)

Kurzes "Setup" Beispiel:

Log_File: logs/Application.log
Log_Level: Debug

D.h. du hast für deine Einstellungen eine LogDatei-Name und ein LogLevel. Daraus lässt sich nun eine Klasse bilden:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
public class LogSettings
{
   public string File { get; set; }
   public string Level { get; set; }
}


Diese Datei kannst du dann Serialisieren.
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
// objekt anlegen
LogSettings logSettings = new LogSettings();
logSettings.File = "logs/Application.log";
logSettings.Level = "Debug"
// serializer initialisieren
XmlSerializer serializer = new XmlSerializer(typeof(LogSettings));
// objekt speichern
using(Stream s = File.OpenWrite("settings.ini"))
{
serializer.Serialize(logSettings, s);
}
// objekt laden
using(Stream s = File.OpenRead("settings.ini"))
{
   LogSettings geladeneSettings = (LogSettings) serializer.Deserialize(s);
   Console.WriteLine("LogFile: " + geladeneSettings.File);
}


// Evtl. gibt's Syntax-Fehler, aber soweit das prinzip
Wegem Databinding bitte ich dich im Netz zu googelen. Das mache ich immer über den Designer und sowas zu erklären ist blöd :) Alternativ kannst du einfach mal im Designer rumschauen bei den controls unter DataBinding... funktioniert eigentlich auf Anhieb :)
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Mi 31.03.10 11:23 
Unter Umständen gibt es eine völlig andere (sinnvolle) Lösung. Wenn du dich mit einer größeren Textdatei befassen und diese in einer MultiLine-TextBox bearbeiten willst, geht es direkt:
ausblenden C#-Quelltext
1:
2:
3:
myTextBox.Text = File.ReadAllText(filename);
// bzw.
File.WriteAllText(filename, myTextBox.Text);

Ähnlich ginge es mit einer RichTextBox.

Aber diese Verfahren sind wenig sinnvoll, wenn es sich um einzeilige TextBoxen handelt. Deshalb tendiert Daniel zu einer Lösung, die alle solche Texte zusammenfasst.

Jürgen
grinchi
Hält's aus hier
Beiträge: 10



BeitragVerfasst: Do 01.04.10 10:37 
XMLs wären auch noch ne alternative

mfg grinchi