Laden...

ListView Inhalt speichern

Erstellt von KRambo vor 19 Jahren Letzter Beitrag vor 19 Jahren 1.417 Views
K
KRambo Themenstarter:in
355 Beiträge seit 2004
vor 19 Jahren
ListView Inhalt speichern

Hallo hab ma wieder n Problem und zwar:

Hab ne ListView mit 2 Spalten, deren Inhalt möchte ich speichern (in meine binäre Datei - per Stream und Serialisiert). Nur wie bekomm ich das Zeug da am besten rein (soll jede Zeile speichern und dann auch wieder auslesen können)?

Kann man das in ein Array legen? X(

S
281 Beiträge seit 2004
vor 19 Jahren

ich hab mal was aus nem buch rausgekramt. vielleicht hilft die ja die codefile etwas weiter.

ich persönlich arbeite gerade an ner methode genau für solche fälle die informationen in einer xml file zu speichern. klappt sogar schon halbwegs 🙂

K
KRambo Themenstarter:in
355 Beiträge seit 2004
vor 19 Jahren

Naja das Problem iss ja nicht dass ichs nich in ne XML reinbekomme, das schaff ich schon. Nur will ich es in ne binäre Datei speichern und nich als XML.

foreach(ListViewItem a In ListView1.Items)
{
XmlWtr.WriteElementString("path_" + item.Text,item.SubItems[1].Text);
}

So gehts mit XML. Nur wenn ichs binär speichere, weiss ich ja nicht wieviel Items ich speichere!? Deshalb weiss ich dann auch nicht wieviel ich wieder auslesen muss...

F
529 Beiträge seit 2003
vor 19 Jahren

Pack deine Werte in eine Hashtable und serialisiere diese denn:


private void Load()
{
        try
			{				
				BinaryFormatter bf = new BinaryFormatter();
				FileStream ht_reader = File.Open(WorkingDirectory + ValsPath, FileMode.Open);

				vals = (Hashtable) bf.Deserialize(ht_reader); //Die Hashtable

				ht_reader.Close();
			}
			catch(FileNotFoundException)
			{
				throw new Exception("Fehler: Kann die Konfigurationsdatei nicht finden");
			}
			catch(Exception err)
			{
				throw new Exception(err.Message);
			}
}

private void Save()
{
        try
			{
				BinaryFormatter bf = new BinaryFormatter();
				FileStream ht_writer = File.Create(WorkingDirectory + ValsPath);
				bf.Serialize(ht_writer, vals);
				
// ht_writer.Flush();
				ht_writer.Close();

				bf = null;
				ht_writer = null;
			}
			catch(Exception err)
			{
				throw new Exception(err.Message);
			}
}


Besuchen sie das VisualC++ - Forum

K
KRambo Themenstarter:in
355 Beiträge seit 2004
vor 19 Jahren

Muss ich mal probieren, vorerst mal danke 🙂