[ shocknp @ 04.12.2016. 21:12 ] @
Zdravo svima,pri izradi projekta naisao sam na problem kod serijalizacije korisnickih naloga.Pri jednom pokretanju programa mogu da napravim vise naloga i sa njima mogu da se ulogujem,sve dok ponovo ne pokrenem program i napravim nalog(u istom fajlu),tada se oni prethodni obrisu.Za serijalizaciju sam koristio BinaryFormatter.Ne znam da li negde gresim ili BinaryFormatter tako funkcionise.Hvala.

Form1
Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Runtime.Serialization.Formatters.Binary;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;

namespace zeljko_nrt_7514
{
    public partial class Form1 : Form
    {
        List<Nalozi> listaNaloga;
        string korisnikAvatarTxt;
        public Form1()
        {
            InitializeComponent();

            listaNaloga = new List<Nalozi>();
            korisnikAvatarTxt = "";
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {

        }

        private void lblRegister_MouseEnter(object sender, EventArgs e)
        {
            lblRegister.ForeColor = Color.Red;
        }

        private void lblRegister_MouseEnter_1(object sender, EventArgs e)
        {
            lblRegister.ForeColor = Color.Black;
        }

        private void lblRegister_MouseLeave(object sender, EventArgs e)
        {
            lblRegister.ForeColor = Color.White;
        }

        private void btnLogin_Click(object sender, EventArgs e)
        {
            string putanja = "nalozi.txt";

            if (File.Exists(putanja))
            {

                List<Nalozi> listaDeserialize = new List<Nalozi>();

                BinaryFormatter bf = new BinaryFormatter();
                FileStream fs = File.OpenRead(putanja);

                listaDeserialize = bf.Deserialize(fs) as List<Nalozi>;

                fs.Dispose();

                foreach(Nalozi n in listaDeserialize){
                    if (n.tip.Equals("administrator") && n.username.Equals(txtUsername.Text) && n.password.Equals(txtPassword.Text))
                    {
                        Administrator aFrm = new Administrator();
                        aFrm.Show();
                    }
                    else if (n.tip.Equals("korisnik") && n.username.Equals(txtUsername.Text) && n.password.Equals(txtPassword.Text))
                    {
                        korisnikAvatarTxt = n.username;
                        Korisnik kFrm = new Korisnik();                       
                        kFrm.Show();            
                        this.Hide();
                        
                    }
                    else {
                        MessageBox.Show("Korisnicko ime ili lozinka nisu validni.");
                    }
                }
            }
            else {
                MessageBox.Show("Datoteka ne postoji!");
            }
        }
        public string avatarText() {
            return this.korisnikAvatarTxt;
        }
        private void lblRegister_Click(object sender, EventArgs e)
        {
            Registracija rFrm = new Registracija();
            rFrm.Show();
            this.Hide();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }
    }
}

registracija
Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;

namespace zeljko_nrt_7514
{
    public partial class Registracija : Form
    {
        List<Nalozi> listaNaloga;
        public Registracija()
        {
            InitializeComponent();

            listaNaloga = new List<Nalozi>();
        }

        private void btnRegistrujSe_Click(object sender, EventArgs e)
        {
            if (txtRegUsername.Text.Trim().Length == 0 || txtRegPassword.Text.Trim().Length == 0)
            {
                MessageBox.Show("Unesite podatke.");
                return;
            }
            else if (!txtRegPassword.Text.Equals(txtRegRepw.Text))
            {

                lblPoklapanje.Visible = true;
                lblPoklapanje.ForeColor = Color.Red;

                return;
            }

            Nalozi nalog = new Nalozi("korisnik", txtRegUsername.Text, txtRegPassword.Text);
            listaNaloga.Add(nalog);
            MessageBox.Show("Uspesno ste se registrovali");

            string putanja = "nalozi.txt";

            BinaryFormatter bf = new BinaryFormatter();
            FileStream fs = File.OpenWrite(putanja);

            bf.Serialize(fs, listaNaloga);

            fs.Dispose();

            Form1 frm1 = new Form1();
            frm1.Show();
            this.Close();
            
        }
    }
}


evo i celog projekta:
Projekat
[ Shadowed @ 05.12.2016. 12:09 ] @
Prilikom registracije kreiras novu listu i u nju dodajes novog korisnika. Ta lista onda ima samo tog jednog korisnika i kada serijalizujes u fajl, on ce sadrzati to isto.
Ako hoces da sacuvas sve ostalo sto je tu bilo, ili koristi istu listu koju i drugde u aplikaciji ili deserijalizuj listu iz fajla, dodaj novog korisnika pa serijalizuj ponovo.
[ shocknp @ 05.12.2016. 12:42 ] @
Pokusao sam kao sto ste mi rekli,ali ne uspevam da uradim kako treba.Da li moze ovde gde sam stavio OpenWrite da ide AppendText - FileStream fs = File.OpenWrite(putanja); -ja sam probao ali mi izbacuje neku gresku "Cannot implicitly convert type System.IO.StreamWritter to System.IO.FileStream.Rekao bih da je problem u OpenWrite jer on brise prethodno iz fajla pa onda upise,ali ne znam kako da append-ujem text u fajl.Hvala vam na odgovoru.