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