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(
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 🙂
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...
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