C#: Salvare e caricare contenuti Textbox con xml

Ancora oggi, purtroppo, durante lo sviluppo di un'applicazione vengono utilizzati file .ini, metodo ormai obsoleto. Vediamo come salvare il testo contenuto nelle TextBox di un Form in un file .xml e successivamente ricaricare i dati nei rispettivi TextBox.

  • Esempio file app.config

  • <?xml version="1.0" encoding="utf-8"?>
    <configuration>
    <appSettings>
    <app key="Nome" value="Mario Rossi" />
    <app key="Email" value="mariorossi@blabla.it" />
    </appSettings>
    </configuration>


  • Scrittura del file app.config

  • string ConfigFile = "app.config";
    FileStream fs = new FileStream(ConfigFile, FileMode.Create);
    XmlTextWriter w = new XmlTextWriter(fs, Encoding.UTF8);

    w.WriteStartDocument();
    w.WriteStartElement("configuration");
    w.WriteStartElement("appSettings");
    w.WriteStartElement("app");
    w.WriteAttributeString("key", "Nome");
    w.WriteAttributeString("value", textBoxUser.Text);
    w.WriteEndElement();
    w.WriteStartElement("app");
    w.WriteAttributeString("key", "Email");
    w.WriteAttributeString("value", textBoxEmail.Text);
    w.WriteEndElement();
    w.Flush();
    fs.Close();
  • Lettura del file app.config

  • string ConfigFile = "app.config";
    FileStream fs = new FileStream(ConfigFile, FileMode.Create);
    XmlTextWriter w = new XmlTextWriter(fs, Encoding.UTF8);

    w.WriteStartDocument();
    w.WriteStartElement("configuration");
    w.WriteStartElement("appSettings");
    w.WriteStartElement("app");
    w.WriteAttributeString("key", "Nome");
    w.WriteAttributeString("value", textBoxUser.Text);
    w.WriteEndElement();
    w.WriteStartElement("app");
    w.WriteAttributeString("key", "Email");
    w.WriteAttributeString("value", textBoxEmail.Text);
    w.WriteEndElement();
    w.Flush();
    fs.Close();

  • Lettura del file app.config

  • public static NameValueCollection AppSettings;

    private void load_Config()
    {
    try
    {
    if (File.Exists(ConfigFile))
    {
    XmlDocument oXml = new XmlDocument();
    oXml.Load(ConfigFile);
    XmlNodeList appList = oXml.GetElementsByTagName("appSettings");
    AppSettings = new NameValueCollection();
    foreach (XmlNode aNode in appList)
    {
    foreach (XmlNode aKey in aNode.ChildNodes)
    {
    AppSettings.Add(aKey.Attributes["key"].Value, aKey.Attributes["value"].Value);
    }
    }
    textBoxUser.Text = AppSettings["Nome"];
    textBoxEmail.Text = AppSettings["Email"];
    }
    }
    catch
    {
    MessageBox.Show("Errore lettura file di configurazione.");
    }
    }


    Non dimenticare ovviamente di aggiungere i namespace System.Xml, System.Collections.Specialized e System.IO.

1 commenti:

Anonimo ha detto...

ciao,
scusa ma per il caricamento del file nelle rispettive textbox come si fa che leggendo il tuo articolo non mi è molto chiaro.
grazie e ottimo lavoro

Posta un commento