IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

Diskusia – 3. diel - Práca s textovými súbormi v C# .NET

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Avatar
relycanx
Člen
Avatar
relycanx:29.3.2013 9:52

Chtěl bych se zeptat, jestli mohu pro ukládání a načítání použít i tento způsob. Jestli není třeba v něčem horší.

//ukládání (za pomocí přidané knihovny System.IO)

TextWriter tw = new StreamWriter("tex­tik.txt",true);

tw.WriteLine("ahoj, už jsem uložený tady v souboru");

tw.Close();

//načítání

TextReader tr = new StreamReader("tex­tik.txt");

Console.Write­Line(tr.ReadLi­ne());

tr.Close();

 
Odpovedať
29.3.2013 9:52
Avatar
Odpovedá na relycanx
Luboš Běhounek Satik:29.3.2013 9:58

Ano, můžeš použít i toto.

Odpovedať
29.3.2013 9:58
https://www.facebook.com/peasantsandcastles/
Avatar
relycanx
Člen
Avatar
relycanx:29.3.2013 10:31

dík :) přijde mi to o něco jednodušší, tak jsem v tom hledal háček :D

 
Odpovedať
29.3.2013 10:31
Avatar
Luboš Běhounek Satik:29.3.2013 10:38

Jenom by jsi textwriter měl hodit do using.

Odpovedať
29.3.2013 10:38
https://www.facebook.com/peasantsandcastles/
Avatar
relycanx
Člen
Avatar
relycanx:31.3.2013 12:59

Poraďte prosím

static void Main(string[] args)
{
StreamWriter sw = new StreamWriter("da­tabaze.txt");
StreamReader sr = new StreamReader("da­tabaze.txt");

//uložení
sw.WriteLine("bla");
sw.Flush();

//načtení
string i;
while ((i = sr.ReadLine()) != null)
{
Console.Write­Line(i);
}

}
Po spuštění chyba na řádku "StreamReader sr = new StreamReader("da­tabaze.txt");" - "IOException was unhandled - Proces nemůže přistupovat k souboru C:\..., protože je soubor využíván jiným procesem" a přitom ten soubor nemám otevřený a zkoušel jsem i načíst a uložit z jiného souboru a stejně to nejde :\ Jako uloží se všechno bez problému, ale načíst je problém.

 
Odpovedať
31.3.2013 12:59
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovedá na relycanx
Petr Nymsa:31.3.2013 13:20

Neuzavřel jsi ten soubor. Tedy využívá ho stále StreamWriter, velmi doporučuju dávat čtení ze souborů do bloku using tedy

using(StreamWriter sw=new StreamWriter("database.txt"))
{
sw.WriteLine("AAAAA");
}

using se za tebe postará o uzavření souboru Snad to bude fungovat :)

Odpovedať
31.3.2013 13:20
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
relycanx
Člen
Avatar
Odpovedá na Petr Nymsa
relycanx:31.3.2013 13:24

jo takhleee, tak k tomu tam je to "using" :D už to chápu, dík moc :)

 
Odpovedať
31.3.2013 13:24
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovedá na relycanx
Petr Nymsa:31.3.2013 13:27

Pozor ! Nepleť si to s usingem na načtení knihoven / namespaces, tedy ty první řádky programu

Odpovedať
31.3.2013 13:27
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Odpovedá na relycanx
Michal Žůrek - misaz:31.3.2013 13:59

using (dost neohrabaně) má 2 významy.
1.) nahoře ti pomůže, abys nemusel pořád zapisovat System.IO.Pat­h.GetFileName­WithoutExtensi­on(""), ale třeba pouze Path.GetFileNa­meWithoutExten­sion("")
2.) using v kódu, je dostupný pro vše co implementuje rozhraní IDisposable, tedy aby se předešlo memory leakům a po provedení potřebné operace všechna data byla vypuštěna z paměti.

 
Odpovedať
31.3.2013 13:59
Avatar
amoneth
Nevyplnené
Avatar
amoneth:10.5.2013 13:30

mám problém s tím že když přidám záznam tak se nepřída hned pod to
např mám dvě 5 a přidam 6
5
5
56
5
takhle to vypadá, ale chci to mi normalně pdo sebou.

static void pripis()
{
try
{
Encoding kodovani = Encoding.Default;
string volba = "ano";
while (volba=="ano")
{
Console.Write­Line("kolik toho bude");
int a = int.Parse(Con­sole.ReadLine());

using (StreamWriter sw = new StreamWriter(@"c:\sem­\dat.txt", true))
{

for (int i = 0; i <= a - 1; i++)
{
Console.Write­Line("Dej co chceš pridat");
string pripisi = Console.ReadLine();

sw.WriteLine(pri­pisi);
}
sw.Flush();
Console.Write­Line("Přejete si zadat další zaznam?? [ano/ne]"); //dalsi while
Console.WriteLine("------------------");
volba = Console.ReadLine();
}
}

}
catch (Exception e)
{
Console.Write­Line(e.Message);
}
Console.Write­Line("prispalo se");
}

 
Odpovedať
10.5.2013 13:30
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zatiaľ nikto nevložil komentár - buď prvý!