Salvare contenuto Textxox in file config

martedì 01 luglio 2008 - 18.33

aleroot Profilo | Junior Member

Dovrei Salvare il contenuto di una textbox che ha inserito l'utente nel programma all'interno di un file configurazione del programma(tipo file .ini) in maniera tale che l'utente una volta che riapre il programma ritrovi quello che aveva inserito in textbox.

Come posso fare?

Enne Profilo | Junior Member

Partendo dal presupposto che dovresti usare un file .xml (es: app.config) invece di un file .ini che è un metodo obsoleto e ormai poco utilizzato. Ti faccio un esempio pratico di scrittura e lettura di un file .xml (app.config) nella tua applicazione:

//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
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();

//Per la lettura crei un metodo che richiami nel Form_Load della tua applicazione

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.");
}

}

Spero di essere stato il più chiaro possibile, non dimenticarti ovviamente di aggiungere i namespace System.Xml, System.Collections.Specialized e System.IO.
Per qualsiasi altra info chiedi pure :)

Rocco Verrastro
.NET Programmer - Web Developer

DomA Profilo | Expert

se usi vb net visita questo sito di Mario De Ghetto

http://deghetto.wordpress.com/2008/01/13/vb-20052008-connessione-a-database-con-adonet-20/
Domenico Mancina

aleroot Profilo | Junior Member

Come faccio per aggiungere i name space??

Enne Profilo | Junior Member

using System.Xml;
using System.Collections.Specialized;
using System.IO;

Vista la natura della domanda, non sò come tu faccia a programmare senza conoscerli.
Ti consiglio quindi di darti una lettura quì:
http://msdn.microsoft.com/it-it/library/dfb3cx8s(VS.80).aspx

Rocco Verrastro
.NET Programmer - Web Developer

aleroot Profilo | Junior Member

Ma il codice che mi hai passato non funziona, mi sembra codice C, io invece sto usando Visual basic 2008...

Scusa non lo ho scritto nel post...

Enne Profilo | Junior Member

In effetti non avevi scritto nel post precedente che ti serviva per VB :)
Non c'è bisogno di scusarsi, non preoccuparti, magari servierà a qualcun'altro che avrà il tuo stesso problema con C#.

Rocco Verrastro
.NET Programmer - Web Developer

aleroot Profilo | Junior Member

Sai mica in Vb net come si fa?

DomA Profilo | Expert

se usi vb net visita questo sito di Mario De Ghetto

http://deghetto.wordpress.com/2008/01/13/vb-20052008-connessione-a-database-con-adonet-20/

Domenico Mancina

kopiro91 Profilo | Newbie

Per salvare il testo della textbox in un file, basta fare in questo modo:

dim StrTesto as string=textbox1.text 'Estrapoli testo in una variabile stringa
my.compyer.fylesystem.writealltext("C:\config.ini",StrString,False)


mentre per leggerlo dopo:

dim strtesto as string=my.computer.fylesystem.readalltext("C:\config.ini")
textbox1.text=strTesto

alexmed Profilo | Guru

Ciao,
io farei così:

Doppio click su "My Project" in "Eplora Soluzioni"

Impostazioni ( dovresti trovare la stringa di connessione al DB sempre che tu abbia un DB associato)

Aggiungi nella casella NOME -->> "txtLastUser" (oppure "ciccio")
di tipo String
Ambito = Utente

Nel l'evento LostFocus della Casella TextBox interessata dal nome utente scrivi

My.Settings.txtLastUser = Me.TextBox.Text (oppure "My.Settings.ciccio")

nell'evento Load del Form scriverai

Me.TextBox.Text = My.Settings.txtLastUser (oppure "My.Settings.ciccio")

Fammi sapere!

Ciao



Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5