z xml do pliku

0

Witam

W pliku xml mam zapisane nazwy i adresy serverow:

<?xml version="1.0"?>

<servery> <server id="1"> <nazwa>aaaaa</nazwa> <adres>11111</adres> </server> <server id="2"> <nazwa>bbbb</nazwa> <adres>222222</adres> </server> </servery>

StreamWriter sw = new StreamWriter("plik.aaa", true);

            sw.WriteLine();

            sw.Flush();
            sw.Close();

Nazwy są wczytywane do listbox tylko jeszczenie wiem co wpisac w sw.WriteLine(); zeby zapisac adres wybranego z listbox servera do pliku

0

1.
Stwórz sobie klasę serwera:

 public class CServer
    {
        private string id;
        private string name;
        private string address;

        public CServer(string id, string name, string address)
        {
            this.id = id;
            this.name = name;
            this.address = address;
        }

        public override string ToString()
        {
            return this.name;
        }

        public void SaveAddressToFile(string FileName)
        {
            StreamWriter sw = new StreamWriter(FileName);
            sw.WriteLine(this.address);
            sw.Close();
        } 
    }

2.
Dodawaj do listbox obiekty tej klasy:

            listBox1.Items.Add(new CServer("1", "aaa", "111"));
            listBox1.Items.Add(new CServer("1", "bbb", "222"));

W Twoim przypadku oczywiście argumenty konstruktora CServer muszą pochodzić ze sparsowanego pliku XML.

3.
Teraz żeby zapisać adres serwera do pliku wystarczy:

        private void button1_Click(object sender, EventArgs e)
        {
            if (listBox1.SelectedItems.Count == 1)
            {
                (listBox1.SelectedItem as CServer).SaveAddressToFile("File.txt");
            }
        }    
0

lub jeśli chcesz trzymać ustawienia w xml, możesz stworzyć sobie typowany (strongly-typed) dataset z kolumnami z danymi do przechowania, a potem tylko ReadXml() i WriteXml().

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0