V tomto velice krátkém článku se zaměříme na ukládání hodnot z programu v C# do textového souboru a následné načítání dat ze souboru.
Ukládání dat do textového souboru je velmi jednoduchá záležitost, a tak není nutné psát dlouhý komentář.
string cesta = "data\\soubor.TXT";
string Obsah = "Tento text bude uložen v textovém souboru.";
FileInfo fi = new FileInfo(
Path.Combine(Environment.CurrentDirectory, cesta));
// Pokud soubor neexistuje, vytvoříme ho a zapíšeme do něj text:
if (!fi.Exists)
{
StreamWriter sw = fi.CreateText();
sw.WriteLine(Obsah);
sw.Close();
fi.Refresh();
}
Prakticky stringovská proměnná cesta nám ukazuje cestu k adresáři, kde se má vytvořit náš soubor TXT. Nepíše se tam celá cesta od disku C:\, ale od kořenového adresáře, kde máte EXE soubor. Pokud chcete zkopírovat cestu ze searche ve složce, tak by to vypadalo nějak takto:
C:\Users\Tase\Documents\Visual Studio 2005\Projects\WindowsApplication14\WindowsApplication14\bin\Debug\data\soubor.TXT
Nám ale krásně postačí, když si necháme jen data\soubor.TXT protože EXE soubor máme ve složce Debug. Až budete vkládat cestu do proměnné cesta, tak nezapomeňte, že kdekoliv máte obrácené lomítko (\), musíte ho napsat dvakrát, protože by si systém myslel, že chcete napsat konstantu (\a – pípnutí, \n – nový řádek atd.). Proměnnou Obsah můžete nahradit za kteroukoliv jinou proměnnou kompatibilní s .NET Frameworkem, ale musíme jí konvertovat do stringu. FileInfo je vlastně třída, která vykonává celý proces ukládání. Dále tu máme podmínku, která vytvoří soubor, pokud neexistuje. Streamwriter je metoda, pomocí níž se zapisuje do souboru. Dále si myslím, že už není potřeba vysvětlovat, protože to už je nad slunce jasné.
Když už jsme se naučili, jak ukládat data do souboru, tak si nyní můžeme ukázat, jak ta data zase načíst.
string cesta = "data\\soubor.TXT";
FileInfo fi = new FileInfo(cesta);
StreamReader sr = new StreamReader(fi.OpenRead());
while (sr.Peek() > -1)
textBox1.Text = sr.ReadLine();
sr.Close();
U toto zdrojového kódu bych chtěl pouze podotknout, že cyklus while postupně projíždí řádek po řádku v textovém souboru. Aktuální stav řádku nám zajišťuje metoda Peek třídy FileInfo, která vrací parametry typu int. Data z textového souboru se nám vracejí v podobě parametrů typu string. V našem kódu si text ukládáme do textBoxu, ale dá se to podle potřeby ukládat např. do proměnných typu string, ale s tím už si určitě pohrajete, jak sami uznáte za vhodné. Pokud budete mít s čímkoli problém, tak se obraťte na diskusi pod článkem nebo na Fórum.