Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem C# Nepřepisovat text v souboru

Dobrý den, mám něco jako tabulku hráčů, kde se zapíše jméno a score do listu. To se pak následně uloží to .txt a když zobrazím tabulku, tak se zobrazí hráči a score v ritchtextboxu. Mám problém, že když program zavřu a otevřu, tak se dosavadní jména začnou přepisovat.

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
namespace Projekt { class Score { static List<string> jmena = new List<string>(); public static List…
Dave007 03.06.2018 11:24
Dave007
namespace Projekt { class Score { static List<string> jmena = new List<string>(); public static List…
Wikan 03.06.2018 11:36
Wikan
Hele, ale moc to nefunguje. Zapíše to tam jména i score několikrát. Tady mám ještě čtení: public pa…
Dave007 03.06.2018 11:55
Dave007
Však taky při každém přidání zapíšeš celý seznam. Nechceš tam náhodou zapsat jenom tu přidanou polož…
Wikan 03.06.2018 12:12
Wikan
No jasný. Chtěl jsem tam přidávat jenom tu přidanou položku :) poslední
Dave007 03.06.2018 12:17
Dave007
namespace Projekt
{
    class Score
    {
        static List<string> jmena = new List<string>();
        public static List<string> score(string jmeno, string score)
        {
            FileStream fs = new FileStream("Score.txt", FileMode.OpenOrCreate);
            StreamWriter sr = new StreamWriter(fs, Encoding.Default);
            string text;
            text = $"{jmeno} {score}";
            jmena.Add(text);
            for (int i = 0; i < jmena.Count; i++)
            {
                sr.WriteLine($"{jmena[i]}");
            }
            sr.Close();
            fs.Close();
            return jmena;
        }
    }
}
namespace Projekt
{
    class Score
    {
        static List<string> jmena = new List<string>();
        public static List<string> score(string jmeno, string score)
        {
            using (var sr = new StreamWriter("Score.txt", true))
            {
                string text;
                text = $"{jmeno} {score}";
                jmena.Add(text);
                for (int i = 0; i < jmena.Count; i++)
                {
                    sr.WriteLine($"{jmena[i]}");
                }
            }
            return jmena;
        }
    }
}

Nicméně ten kód je takový podivný. Proč do sebe mícháš přidávání do seznamu a jeho výpis do souboru?

Hele, ale moc to nefunguje. Zapíše to tam jména i score několikrát. Tady mám ještě čtení:

public partial class Form3 : Form
    {
        public Form3()
        {
            InitializeComponent();
        }

        private void Form3_Load(object sender, EventArgs e)
        {
            FileStream fs = new FileStream("Score.txt", FileMode.Open);
            StreamReader sr = new StreamReader(fs, Encoding.Default);
            richTextBox1.Text = sr.ReadToEnd();
            sr.Close();
            fs.Close();
        }
    }

Zpět do poradny Odpovědět na původní otázku Nahoru