Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Scrittura a Runtime di App.Config
giovedì 21 giugno 2007 - 12.26
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
LeonDom
Profilo
| Senior Member
471
messaggi | Data Invio:
gio 21 giu 2007 - 12:26
Ragazzi,
dovrei scrivere a runtine alcuni parametri... o meglio fare un update...
utilizzo questo schema:
<appSettings>
<add key="Fine" value="1"/>
<add key="Documento" value="2000"/>
</appSettings>
Come faccio a scrivere da codice nel file? E sostituire il value="2000" con un altro valore????
Grazie a tutti
LeonDom
munissor
Profilo
| Senior Member
270
messaggi | Data Invio:
gio 21 giu 2007 - 19:19
Non ci sono metodi specifici per farlo, ma essendo un file XML puoi modificarlo facilmente utilizzando (per esempio) XmlDocument...
munissor
Profilo
| Senior Member
270
messaggi | Data Invio:
gio 21 giu 2007 - 19:20
Non ci sono metodi specifici per farlo, ma essendo un file XML puoi modificarlo facilmente utilizzando (per esempio) XmlDocument...
LeonDom
Profilo
| Senior Member
471
messaggi | Data Invio:
ven 22 giu 2007 - 10:56
Perfetto...
sto seguendo l'esempio di XMLDocument riportato su questo sito faccio in questo modo...
Dim path As String = "Progetto1.exe.config"
Dim Doc As New XmlDocument() 'istanzio il documento
Doc.Load(path) 'lo carico in memoria
Dim element As XmlElement = Doc.DocumentElement 'recupero il nodo root
Dim node As XmlNode 'recupero il valore all'interno del primo figlio dell'elemento root
For Each node In element.ChildNodes
MessageBox.Show(node.InnerText)
Next
Sembrerebbe che scorra i nodi.... ma nei messagebox non mi compare nulla...
il mio app.config e così...
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
</configSections>
<connectionStrings>
</connectionStrings>
<appSettings>
<add key="PercorsoProgramma" value="C:\"/>
<add key="vSorgente" value="C:\"/>
<add key="vDestinazione" value="C:\"/>
<add key="Documento" value="2000"/>
</appSettings>
<system.diagnostics>
<sources>
<!-- Questa sezione definisce la configurazione di registrazione per My.Application.Log -->
<so
etc etc...
Dovrei Scorrere e cambiare il valore di documento, in base a delle ricerche che effettuo in dbase...
LeonDom
munissor
Profilo
| Senior Member
270
messaggi | Data Invio:
ven 22 giu 2007 - 20:23
Ti compare un message box vuoto perchè non c'è un InnerText...
<node>Questo è un inner text</node>
<node><node2></node2></node> <-- Cosi dovresti usare InnerXml
LeonDom
Profilo
| Senior Member
471
messaggi | Data Invio:
lun 25 giu 2007 - 10:14
...grazie innanzitutto...
Infatti con InnerXML mi restituisce il nodo... purtroppo mi restituisce solo il nodo <appSettings> come un'unica stringa... in questo modo come faccio a far visualizzare il nodo figlio add key? ...se non sbaglio devo modificare poi l'attributo del nodo figlio giusto?
******************************************************************************************************
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
</configSections>
<connectionStrings>
</connectionStrings>
<appSettings>
<add key="PercorsoProgramma" value="C:\"/>
<add key="vSorgente" value="C:\"/>
<add key="vDestinazione" value="C:\"/>
<add key="Documento" value="2000"/>
</appSettings>
<system.diagnostics>
<sources>
<!-- Questa sezione definisce la configurazione di registrazione per My.Application.Log -->
<so
etc etc...
********************************************************************************************************
LeonDom
munissor
Profilo
| Senior Member
270
messaggi | Data Invio:
lun 25 giu 2007 - 18:38
Una volta che hai il nodo appConfig puoi ciclare sui figli add... (attenzione che appConfig non ha solo nodi add come sembrerebbe..ci sono anche nodi remove).
Verifichi se esiste un attrbuto "key" (via XmlNode.Attributes) e una volta che trovi l'elemento che ti serve ne modifichi il valore.
ricordati di salvare l'XmlDocument alla fine
LeonDom
Profilo
| Senior Member
471
messaggi | Data Invio:
mar 26 giu 2007 - 10:04
Buongiorno a tutti... approfitto per chiederti questa cosa:
questo è il mio codice....
Try
Dim XmlDoc As New XmlDocument()
XmlDoc.Load(miopercorso\bin\debug\nomeprogramma.exe.config)
For Each xElement As XmlElement In XmlDoc.DocumentElement
If xElement.Name = "appSettings" Then
For Each xNode As XmlNode In xElement.ChildNodes
If xNode.Attributes(0).Value = KeyName Then
xNode.Attributes(1).Value = KeyValue
End If
Next
End If
Next
XmlDoc.Save(miopercorso\bin\debug\nomeprogramma.exe.config)
Catch ex As Exception
MessageBox.Show(ex.ToString())
End Try
Passo a KeyName e a KeyValue i parametri che devo modificare...
....quando trova il nodofiglio appSettings mi va in errore:
"riferimento ad un oggetto non impostato su un'istanza di un oggetto"
che sbaglio?
Grazie a tutti...
LeonDom
munissor
Profilo
| Senior Member
270
messaggi | Data Invio:
mar 26 giu 2007 - 18:12
Dove esattamente ti da errore?
LeonDom
Profilo
| Senior Member
471
messaggi | Data Invio:
mer 27 giu 2007 - 08:49
in questo punto:
If xNode.Attributes(0).Value = KeyName Then
xNode.Attributes(1).Value = KeyValue
End If
cicla gli attributi degli xNode ma quando arriva al KeyName che mi serve modificare in lettura dell'If di genera l'errore...
LeonDom
munissor
Profilo
| Senior Member
270
messaggi | Data Invio:
mer 27 giu 2007 - 18:42
E' un "dettaglio" della specifica XML... in questo xml
<item>
</item>
anche </item> è un nodo.. e non ha attributi (poi gli attributi a loro volta sono nodi..dovresti leggere la specifica XML)
in ogni modo puoi verificare che xNode.NodeType sia uguale a XmlNodeType.Element prima di leggere gli attributi... (e verificare che gli attibuti esistano per nome, non per indice che è rischioso)..
LeonDom
Profilo
| Senior Member
471
messaggi | Data Invio:
mer 4 lug 2007 - 09:39
Grazie munissor,
ci provo, ma tornerò sicuramente a chiederti...
LeonDom
Torna su
Stanze Forum
Elenco Threads
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 !