Mam taką klasę której używam do serializacji danych:
[Serializable]
public class Miesiac
{
public string nazwa;
public string rok;
public string[] a;
public Miesiac(string name,string year ,string[] l)
{
nazwa = name;
rok = year;
a = l;
}
}
Taką funkcje zapisującą do pliku:
void zapisz()
{
string[] t = {textBox1.Text, textBox2.Text, textBox3.Text, textBox4.Text,
textBox5.Text,textBox6.Text,textBox7.Text,textBox8.Text,
textBox9.Text,textBox10.Text,textBox11.Text,textBox12.Text,
textBox13.Text,textBox14.Text,textBox15.Text,textBox16.Text,
textBox17.Text};
BinaryFormatter binform = new BinaryFormatter();
List<Miesiac> m= new List<Miesiac>();
FileInfo f = new FileInfo("dat.ini");
if(f.Exists)
{
FileStream czytaj = new FileStream("dat.ini", FileMode.Open);
m = (List<Miesiac>)binform.Deserialize(czytaj);
czytaj.Close();
List<Miesiac> foundm = m.FindAll(el => el.rok == comboBox1.Text);
if (foundm != null)
{
Miesiac mf = foundm.Find(el => el.nazwa == comboBox2.Text);
if (mf != null)
{
mf.a = t;
}
}
else
{
m.Add(new Miesiac(comboBox2.Text, comboBox1.Text, t));
}
}
else
{
m.Add(new Miesiac(comboBox2.Text, comboBox1.Text, t));
}
FileStream file = new FileStream("dat.ini", FileMode.Create);
binform.Serialize(file, m);
file.Close();
}
Oraz taką funkcje odczytującą z pliku:
void odczyt()
{
TextBox[] t = { textBox1, textBox2, textBox3, textBox4, textBox5,
textBox6,textBox7,textBox8,textBox9,textBox10,textBox11,
textBox12,textBox13,textBox14,textBox15,textBox16,
textBox17};
List<Miesiac> m = new List<Miesiac>();
FileStream file = new FileStream("dat.ini", FileMode.Open);
BinaryFormatter binform = new BinaryFormatter();
m = (List<Miesiac>)binform.Deserialize(file);
List<Miesiac> foundm = m.FindAll(el => el.rok == comboBox1.Text);
if (foundm != null)
{
Miesiac mf = foundm.Find(el => el.nazwa == comboBox2.Text);
if (mf != null)
{
for (int i = 0; i < 17; i++)
t[i].Text = mf.a[i];
}
}
file.Close();
}
Moj problem polega na tym, że po jednokrotnym użyciu funkcji zapisującej tworzy ona plik, i wpisuje jeden element typu miesiac(tak jak powinna), ale przy kolejnych uzyciach funkcji nic sie nie dzieje z plikiem ... nic nie zostaje zastapione ani nic nie jest dopisywane.... nie wiem co z tym zrobic teraz .... juz probowalem zmieniac trypy otwarcia/dostepu do pliku itd. ale skutek zaden. Jak dla mnie to powinno normalnie dzialac
Domyslam sie ze cos z ifami jest nie tak bo bez nich wszystko dziala jak nalezy ale nie nadpisuje sie tylko dodaje na koncu