Ob zagonu aplikacije se na glavno prikazovalno okno, ki ga ustvarimo s pomočjo ukaza RichTextBox, izpiše vsebina datoteke. Datoteko odpremo v pomožni metodi Listek, ki vrne seznam. Vsak element seznama predstavlja vrstico datoteke oziroma postavko na listku.
Ko vpišemo novo postavko, jo s pomočjo gumba Dodaj postavko potrdimo in zapišemo na listek. To storimo tako, da najprej izbrišemo celotno datoteko in nato postavko dodamo seznamu prejšnjih postavk, to pa zopet napišemo na datoteko.
Če želimo neko postavko izbrisati, jo iz seznama odstranimo in na datoteko znova napišemo nov seznam. S tem že sproti spreminjamo datoteko.
public partial class GlavnaForma : Form
{
public GlavnaForma()
{
InitializeComponent();
}
//spremenljivka z imenom datoteke
private string datoteka="listek.txt";
public List<string> Listek()
{
List<string> sez= new List<string>();
string vrstica = "";
using (StreamReader beri = new StreamReader(datoteka))
{
while ((vrstica = beri.ReadLine()) != null)
{
sez.Add(vrstica);
}
}
return sez;
}
private void GlavnaForma_Load(object sender, EventArgs e)
{
List<string> sez = Listek();
for (int i = 0; i < sez.Count; i++)
{
rtbIzpis.Text += sez[i];
rtbIzpis.Text += Environment.NewLine;//ali "\n"
}
}
private void btDodaj_Click(object sender, EventArgs e)
{
List<string> sez = Listek();
sez.Add(tbDodaj.Text);
if (File.Exists(datoteka))
{
File.Delete(datoteka);
}
StreamWriter pisi = new StreamWriter(datoteka);
for (int i = 0; i < sez.Count; i++)
{
pisi.WriteLine(sez[i]);
}
pisi.Close();
rtbIzpis.Text = "";
GlavnaForma_Load(sender,e);
tbDodaj.Text = "";
}
private void btOdstrani_Click(object sender, EventArgs e)
{
List<string> sez = Listek();
sez.Remove(tbOdstrani.Text);
if (File.Exists(datoteka))
{
File.Delete(datoteka);
}
StreamWriter pisi = new StreamWriter(datoteka);
for (int i = 0; i < sez.Count; i++)
{
pisi.WriteLine(sez[i]);
}
pisi.Close();
rtbIzpis.Text = "";
GlavnaForma_Load(sender, e);
tbOdstrani.Text = "";
}
}