NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Zapsání do souboru v C#

V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Jak se ti líbí článek?
Před uložením hodnocení, popiš prosím autorovi, co je špatněZnaků 0 z 50-500
Jak se ti kurz líbí?
Tvé hodnocení kurzuZnaků 0 z 50-500
Aktivity
Avatar
Veganekk
Člen
Avatar
Veganekk:4.3.2013 19:30

Chci se zeptat jak na zapisování do souboru TXT. Umím z něj číst ale při zapisování mi to nejde...
ZDE JE MOJE FUNKCNI CTENI ZE SOUBORU

public string slozka
        {
            get
            {
                //application.... - vraci nazev souboru ktery je spusten!
                FileInfo fi = new FileInfo(Application.ExecutablePath);
                return fi.DirectoryName;
            }
        }
public string nactenisoubor()
        {
            string fn = slozka + "\\DATABAZE.txt";
            if (File.Exists(fn)
            {
                string[] uloz= File.ReadAllLines(fn, Encoding.GetEncoding("WINDOWS-1250"));
                int i = 0;
                return uloz[i];
            }
        }

Chci se zeptat jde udělat toto nebo ne? A kdyztak poradite prosím

public string slozka
        {
            get
            {
                //application.... - vraci nazev souboru ktery je spusten!
                FileInfo fi = new FileInfo(Application.ExecutablePath);
                return fi.DirectoryName;
            }
        }
public string nactenisoubor()
        {
            string fn = slozka + "\\DATABAZE.txt";
            if (File.Exists(fn)
            {
                string[] uloz= File.WriteAllLines(fn, Encoding.GetEncoding("WINDOWS-1250"));
                int i = 0;
                return uloz[i];
            }
        }

Jde to nejak upravit aby to zapisovalo nebo ne? Dekuji

Odpovědět
4.3.2013 19:30
Rád se učím novým věcem. A věci co nechápu rád pochopím a naučím.
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Veganekk
matesax:4.3.2013 19:35

Co to je? Proboha!

using (StreamDdd sr/sw = new StreamDdd(new FileStream("path", parameters)))

StreamDdd dej buď "StreamReader", nebo "StreamWriter" podle toho ten název proměnné... Path == cesta k souboru - nejlépe v ApplicationData:

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\Složka\nazev.pripona"

No a dovnitř usingu dáš buď

sr.Read(Line/ToEnd)();

nebo

sw.Write(Line)("ddd");
Editováno 4.3.2013 19:37
 
Nahoru Odpovědět
4.3.2013 19:35
Avatar
Odpovídá na matesax
Luboš Běhounek Satik:4.3.2013 20:06

Co znamená ta zkratka ddd, kterou tak často používáš?
Doporučená denní dávka to asi nebude, že? :D

Nahoru Odpovědět
+3
4.3.2013 20:06
https://www.facebook.com/peasantsandcastles/
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Luboš Běhounek Satik
matesax:4.3.2013 20:51

OK - *** - lepší? :)

 
Nahoru Odpovědět
4.3.2013 20:51
Avatar
Veganekk
Člen
Avatar
Veganekk:4.3.2013 20:53

nchápu to -_-
Můžes ještě jednou a vysvětlit jak na to? Totálně jsme se vtom zamotal....;(

Nahoru Odpovědět
4.3.2013 20:53
Rád se učím novým věcem. A věci co nechápu rád pochopím a naučím.
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Veganekk
matesax:4.3.2013 21:10

Protože na to jdeš kdo ví jak - čtení:

string text = "";

using (StreamReader sr = new StreamReader("ceta"))
    text = sr.ReadToEnd();

nebo:

using (StreamReader sr = new StreamReader(new FileStream("ceta", parametry)))
    text = sr.ReadToEnd();

nebo:

string line = "";

using (StreamReader sr = new StreamReader(new FileStream("ceta", parametry)))
    while ((line = sr.ReadToEnd()) != null)
        text += Enfironment.NewLine + line;

nebo:

using (StreamReader sr = new StreamReader(new FileStream("ceta", parametry)))
{
    ddd
}

Zápis:

using (StreamWriter sw = new StreamWriter("ceta"))
    sw.Write(ddd);

nebo:

using (StreamWriter sw = new StreamWriter(new FileStream("ceta", parametry)))
    sw.WriteLine(ddd);

A kvlůli těm 6000000 možnostem se mi to nechtělo vypisovat... Je to tu, i v manuálu - tak proč si to neprojdeš? :)

 
Nahoru Odpovědět
4.3.2013 21:10
Avatar
Veganekk
Člen
Avatar
Veganekk:4.3.2013 21:33

Furt to nejde.... :/ Zkousel jsem par kodu od tud
http://www.itnetwork.cz/…-soubory-txt
ALE VUBEC NEJDE ://

Nahoru Odpovědět
4.3.2013 21:33
Rád se učím novým věcem. A věci co nechápu rád pochopím a naučím.
Avatar
Odpovídá na Veganekk
Luboš Běhounek Satik:4.3.2013 22:12

Nepoužívej při popisování problémů slovo nejde, tím ostatním neřekneš vůbec nic - jestli to nejde zkompilovat, hází to chybu nebo to nefunguje tak, jak by mělo...

Nahoru Odpovědět
4.3.2013 22:12
https://www.facebook.com/peasantsandcastles/
Avatar
Veganekk
Člen
Avatar
Veganekk:4.3.2013 22:18

Nejde mi vubec nic zkousel jsem toto z knizky

StreamReader sr=new StreamReader(fn);//Cestna souboru je v promene fn
string s=sr.ReadToEnd();
sr.Close();
return s;

Nic se nestane. Po zmacknuti se nic nestane a hodi to chybovou hlasku ve VISUAL .

Nahoru Odpovědět
4.3.2013 22:18
Rád se učím novým věcem. A věci co nechápu rád pochopím a naučím.
Avatar
Honza Bittner
Tvůrce
Avatar
Odpovídá na Veganekk
Honza Bittner:4.3.2013 22:22

tak sem tu chybovou hlášku napiš ne :D

Nahoru Odpovědět
4.3.2013 22:22
FIT ČVUT alumnus :-) Sleduj mě na https://twitter.com/tenhobi a ptej se na cokoli na https://github.com/tenhobi/ama.
Avatar
Michal Maršálek:4.3.2013 22:28

Máš tam

using System.IO;

?

 
Nahoru Odpovědět
4.3.2013 22:28
Avatar
Veganekk
Člen
Avatar
Veganekk:4.3.2013 22:32

mám fakticky nevim kde je chyba docela me to stve :(

Nahoru Odpovědět
4.3.2013 22:32
Rád se učím novým věcem. A věci co nechápu rád pochopím a naučím.
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Veganekk
matesax:5.3.2013 5:46

Proč nepoužíváš using? (Pro StreamDdd.)

using System.IO;

...

using (StreamReader sr = new StreamReader("ceta"));

Jít musí.

Editováno 5.3.2013 5:46
 
Nahoru Odpovědět
5.3.2013 5:46
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Veganekk
David Hartinger:5.3.2013 7:56

Pokud sem nenapíšeš tu chybovou hlášku tak s tím asi nic neuděláme, protože křišťálová koule je zase v čistírně. Jak je to v tutoriálu, tak to funguje. Ještě mě napadá jestli jsi četl tohle: http://www.itnetwork.cz/…e-se-soubory

Nahoru Odpovědět
+2
5.3.2013 7:56
New kid back on the block with a R.I.P
Avatar
Honza Bittner
Tvůrce
Avatar
Honza Bittner:5.3.2013 15:15

zkus něco takového na uložení ...

using (StreamWriter sw = new StreamWriter(@"data/save.txt"))
            {
                sw.WriteLine(a);
                sw.WriteLine(b);
                sw.WriteLine(c);

                sw.WriteLine(d);
                sw.WriteLine(e);
                sw.WriteLine(f);

                sw.Flush();
                sw.Close();
            }
Nahoru Odpovědět
5.3.2013 15:15
FIT ČVUT alumnus :-) Sleduj mě na https://twitter.com/tenhobi a ptej se na cokoli na https://github.com/tenhobi/ama.
Avatar
Veganekk
Člen
Avatar
Veganekk:6.3.2013 10:17

Kod mám vloženy takto : NEVIM CO DAT DO PARAMETRU

private void button3_Click(object sender, EventArgs e)
       {   string s = "";
           string fn = slozka + "\\DATABAZE.txt";
           using (StreamReader sr = new StreamReader(new FileStream(fn,JSEM NEVIM CO MÁM NAPSAT)))
               text = sr.ReadToEnd();

Píše mi to tuto chybu :

Chyba   2       'System.IO.FileStream' neobsahuje konstruktor, který přijímá 1 argumentů   c:\users\tsuna\documents\visual studio 2012\Projects\ZAPISDOSOUBORUACETNI(sam,slovpocet,...)\ZAPISDOSOUBORUACETNI(sam,slovpocet,...)\Form1.cs   103     55      ZAPISDOSOUBORUACETNI(sam,slovpocet,...)
Nahoru Odpovědět
6.3.2013 10:17
Rád se učím novým věcem. A věci co nechápu rád pochopím a naučím.
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovídá na Veganekk
Petr Nymsa:6.3.2013 10:47

Visual studio je dost dobrý pomocník a napovídá ti :). Každopádně musíš minimálně připsat FileMode. V tvém případě Open.

StreamReader sr = new StreamReader(new FileStream(fn,FileMode.Open)))
Editováno 6.3.2013 10:48
Nahoru Odpovědět
6.3.2013 10:47
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Honza Bittner
matesax:6.3.2013 10:51

Proč čistíš a zavíráš v using?

 
Nahoru Odpovědět
6.3.2013 10:51
Avatar
Kit
Tvůrce
Avatar
Odpovídá na matesax
Kit:6.3.2013 10:54

Chceš tím naznačit, že ten buffer nemusí čistit a že nemusí ten soubor zavírat? Jak ho pak zavřeš?

Nahoru Odpovědět
6.3.2013 10:54
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Kit
matesax:6.3.2013 11:07

using? Od čeho tam asi je...

 
Nahoru Odpovědět
6.3.2013 11:07
Avatar
Kit
Tvůrce
Avatar
Odpovídá na matesax
Kit:6.3.2013 11:21

Já jenom že v C# nefungují destruktory jak by měly a pokud by se soubor zavíral až destruktorem, bylo by to špatně.

Pokud to using provádí jinak, tak je to OK.

Nahoru Odpovědět
6.3.2013 11:21
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na matesax
David Hartinger:6.3.2013 11:22

Nevím nic o tom že by using vyvolal Flush(), zavolá jen Close(), s tím máš pravda, že tam být nemá.

Nahoru Odpovědět
6.3.2013 11:22
New kid back on the block with a R.I.P
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Veganekk
David Hartinger:6.3.2013 11:22

To jsi se do toho tutoriálu asi moc nedíval chlape...

Nahoru Odpovědět
6.3.2013 11:22
New kid back on the block with a R.I.P
Avatar
matesax
Tvůrce
Avatar
Odpovídá na David Hartinger
matesax:6.3.2013 11:30

Nač čistit buffer před zavřením? Ano - using to zavře. Není tam další zápis - nač tedy čistit?

Editováno 6.3.2013 11:32
 
Nahoru Odpovědět
6.3.2013 11:30
Avatar
Odpovídá na matesax
Luboš Běhounek Satik:6.3.2013 11:40

Flush() nejen ten buffer vyčistí, ale taky zapíše ty data, samotné WriteLine () je do toho souboru ještě neuloží hned.

Naštěstí Close() interně Flush() volá.

Nahoru Odpovědět
+2
6.3.2013 11:40
https://www.facebook.com/peasantsandcastles/
Avatar
Honza Bittner
Tvůrce
Avatar
Odpovídá na Veganekk
Honza Bittner:6.3.2013 12:42
string fn = slozka + "\\DATABAZE.txt";

hele ... kde máš definovanou cestu k SLOZKA ... ?

Editováno 6.3.2013 12:42
Nahoru Odpovědět
6.3.2013 12:42
FIT ČVUT alumnus :-) Sleduj mě na https://twitter.com/tenhobi a ptej se na cokoli na https://github.com/tenhobi/ama.
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Luboš Běhounek Satik
matesax:6.3.2013 12:42

Ano - nevyjádřil jsem se správně - jelikož spěchám - ve škole nesmíme být na PC... Prostě stačí jen using - je od toho, že se o tyto věci postará...

 
Nahoru Odpovědět
6.3.2013 12:42
Avatar
Veganekk
Člen
Avatar
Veganekk:7.3.2013 10:30

Trošku jsem se zamotal v tom kdo má pravdu... Ale když jsme u toho jak mohu z txt dat precist data a vlozit do LISTU STRINGU ? NEJDE MI TO A PISE TO CHYBU...

 public string slozka
        {
            get
            {
                //application.... - vraci nazev souboru ktery je spusten!
                FileInfo fi = new FileInfo(Application.ExecutablePath);
                return fi.DirectoryName;
            }
        }

            List<string> textak = new List<string>();
StreamReader sr = new StreamReader(new FileStream(fn, FileMode.Open));
            textak = sr.ReadToEnd();

Chyba piše tuto chybu.

Chyba   2       Typ 'string' nelze implicitně převést na typ 'System.Collections.Generic.List<string>'       c:\users\tsuna\documents\visual studio 2012\Projects\ZAPISDOSOUBORUACETNI(sam,slovpocet,...)\ZAPISDOSOUBORUACETNI(sam,slovpocet,...)\Form1.cs   115     20      ZAPISDOSOUBORUACETNI(sam,slovpocet,...)
  • Jak mohu zjistit v textaku pocet řádku když jsme u toho.

Děkuju za každou radu.

Nahoru Odpovědět
7.3.2013 10:30
Rád se učím novým věcem. A věci co nechápu rád pochopím a naučím.
Avatar
Odpovídá na Veganekk
Luboš Běhounek Satik:7.3.2013 10:54

Jednodušší bys měl použít třídu File:

String soubor = "C:\Složka\soubor.txt";
String[] radkySouboru = File.ReadAllLines(soubor);
Console.WriteLine("Pocet radku: " + radkySouboru.Length);

V poli radkySouboru máš pak načtený celý soubor, co jeden řádek, to jeden String v poli.

Podobně pak můžeš zapisovat, třeba:

String soubor = "C:\Složka\soubor.txt";
String[] radkyKZapsani = new String[3] {"Řádek 1", "Řádek 2", "Řádek 3"};
File.WriteAllLines(soubor, radkyKZapsani);
Nahoru Odpovědět
7.3.2013 10:54
https://www.facebook.com/peasantsandcastles/
Avatar
CzMarty
Člen
Avatar
CzMarty:7.3.2013 11:20

kazdopadne jako standartni metoda při zapisu do souboru se pouziva StreamWriter :D ale jako pouzit tridu File je urcite jednodussi jenze ne všichni se v tom dokazi orientovat :D

Nahoru Odpovědět
7.3.2013 11:20
Žiješ jen jednou. Tak žij pořádně :D
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Luboš Běhounek Satik
matesax:7.3.2013 11:21

Blbost - using je lepší - nejen, že vyřeší správné uzavření souboru atd., ale i celkově jeho použití je jednodušší, praktičtější,... A zapsat pole stringu v něm můžeš také - jenže proč?

 
Nahoru Odpovědět
7.3.2013 11:21
Avatar
Odpovídá na matesax
Luboš Běhounek Satik:7.3.2013 11:30

Třída File všechno řeší za tebe, jedním řádkem kódu zapíšeš/načteš soubor do stringu nebo řádky souboru do pole stringů, pokud nepotřebuješ v tu chvíli řešit něco pokročilejšího (třeba načítat jen něco, používat kompresi apod.), tak je to nejjednodušší postup, všechno včetně otevření a zavření souboru a uvolnění prostředků dělá za tebe...

Nahoru Odpovědět
+1
7.3.2013 11:30
https://www.facebook.com/peasantsandcastles/
Avatar
CzMarty
Člen
Avatar
CzMarty:7.3.2013 11:32

urcite souhlasim se satikem :D

Nahoru Odpovědět
7.3.2013 11:32
Žiješ jen jednou. Tak žij pořádně :D
Avatar
Kit
Tvůrce
Avatar
Odpovídá na matesax
Kit:7.3.2013 11:36

I v PHP je lepší používat tyto specializované třídy a metody, protože řeší kolizi více procesů pracujících s jedním souborem. Je to použitelné vždy, kdy potřebuji číst nebo zapisovat celý soubor naráz, případně appendovat jeden blok textu. Zpravidla je to i rychlejší.

Je to vynikající například při logování chyb.

Nahoru Odpovědět
7.3.2013 11:36
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na matesax
Luboš Běhounek Satik:7.3.2013 11:36

Pro srovnání tvoje verze, která načte obsah souboru do stringu:

string line = "";

using (StreamReader sr = new StreamReader(new FileStream("cesta", parametry)))
    while ((line = sr.ReadToEnd()) != null)
        text += Enfironment.NewLine + line;

a verze přes File :

String line = File.ReadAllText("cesta");
Nahoru Odpovědět
7.3.2013 11:36
https://www.facebook.com/peasantsandcastles/
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Luboš Běhounek Satik
Kit:7.3.2013 11:46

Asi jsi měl na mysli

String text = File.ReadAllText("cesta");
Nahoru Odpovědět
7.3.2013 11:46
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Luboš Běhounek Satik:7.3.2013 11:50

Jj, copy&paste typo :)

Nahoru Odpovědět
7.3.2013 11:50
https://www.facebook.com/peasantsandcastles/
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Luboš Běhounek Satik
matesax:7.3.2013 12:02

Co asi řeší navíc, když je to FileStream? Musíš to ručně uzavřít...

 
Nahoru Odpovědět
7.3.2013 12:02
Avatar
Veganekk
Člen
Avatar
Veganekk:7.3.2013 12:07

Pri vlozeni toho kodu co napsal satik to pise toto

Chyba   3       Název 'Enfironment' v aktuálním kontextu neexistuje  c:\users\tsuna\documents\visual studio 2012\Projects\ZAPISDOSOUBORUACETNI(sam,slovpocet,...)\ZAPISDOSOUBORUACETNI(sam,slovpocet,...)\Form1.cs   118     22      ZAPISDOSOUBORUACETNI(sam,slovpocet,...)
[\code]

Mám dalsi problem. Pri zmacknuti buttonu tak kdyz zjistuji samohlasky pres forech tak se mi to furt zvysuje o ten pocet co to spocitalo poprve( Takze z 11 je treba 22 a pak 33 a tak se to zvysuje furt o +11). Takže pri vypisu do TEXTBOXU se mi to?
[\code]
foreach (char znak in s)
            {

                if (samohlasky.Contains(znak))
                {
                    pocetsamohlasek++;
                }
            }
Nahoru Odpovědět
7.3.2013 12:07
Rád se učím novým věcem. A věci co nechápu rád pochopím a naučím.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na matesax
Kit:7.3.2013 12:08

Proč by to měl ručně zavírat? File.ReadAllText() soubor otevře, přečte a zavře.

Nahoru Odpovědět
7.3.2013 12:08
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Veganekk
Kit:7.3.2013 12:10

Skutečně jsi to pojmenoval 'Enfironment'?

Nahoru Odpovědět
7.3.2013 12:10
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Veganekk
Luboš Běhounek Satik:7.3.2013 12:31

Máš tam chybku, má být Environment.

Jestli to dobře chápu, tak nenuluješ tu proměnnou pocetsamohlasek před tím počítáním, takže ti tam zůstává hodnota od minulého počítání.

Nahoru Odpovědět
7.3.2013 12:31
https://www.facebook.com/peasantsandcastles/
Avatar
Odpovídá na matesax
Luboš Běhounek Satik:7.3.2013 12:34

File není instance třídy FileStream, ale statická třída .NETu, která poskytuje pár funkcí se soubory.
K načtení obsahu souboru pak opravdu nepotřebuješ nic víc, než ten jeden příkaz, který za tebe ten soubor otevře, načte data a zase ho zavře a uvolní, tam už není žádný kód okolo, který bys musel volat.

Editováno 7.3.2013 12:35
Nahoru Odpovědět
7.3.2013 12:34
https://www.facebook.com/peasantsandcastles/
Avatar
Veganekk
Člen
Avatar
Veganekk:7.3.2013 22:08

Už opět jsme se ztatil . Tak co teda? Jak to ma byt dobre protoze fakticky uz nevim....

Nahoru Odpovědět
7.3.2013 22:08
Rád se učím novým věcem. A věci co nechápu rád pochopím a naučím.
Avatar
Odpovídá na Veganekk
Luboš Běhounek Satik:7.3.2013 22:13

Použij tu moji verzi :)

Nahoru Odpovědět
7.3.2013 22:13
https://www.facebook.com/peasantsandcastles/
Avatar
Veganekk
Člen
Avatar
Veganekk:7.3.2013 23:49

Myslis tento kod
Jen co je ten Enfironment ?? Jak jsem psal vyse pise mi to chybovoou hlasku ... . Je Enfironment promena nebo tak ??

string line = "";
using (StreamReader sr = new StreamReader(new FileStream("cesta", parametry)))
    while ((line = sr.ReadToEnd()) != null)
        text += Enfironment.NewLine + line;

ci tento

String line = File.ReadAllText("cesta");

Jinak dekuju za pomoc... :)

Nahoru Odpovědět
7.3.2013 23:49
Rád se učím novým věcem. A věci co nechápu rád pochopím a naučím.
Avatar
Odpovídá na Veganekk
Luboš Běhounek Satik:8.3.2013 0:07

Ten dolní použij.

Nahoru Odpovědět
8.3.2013 0:07
https://www.facebook.com/peasantsandcastles/
Avatar
Veganekk
Člen
Avatar
Veganekk:8.3.2013 0:13

A jen tak pro zajímavost co je ten
Enfironment ? K cedmu to slouzi??

Nahoru Odpovědět
8.3.2013 0:13
Rád se učím novým věcem. A věci co nechápu rád pochopím a naučím.
Avatar
Odpovídá na Veganekk
Luboš Běhounek Satik:8.3.2013 0:16

EnvironMent.New­Line je znak nové řádky.

Nahoru Odpovědět
8.3.2013 0:16
https://www.facebook.com/peasantsandcastles/
Avatar
Veganekk
Člen
Avatar
Veganekk:8.3.2013 0:20

Dekuju za vysvetleni.
Jeste kdybych se mohl zeptat jak zjistim pocet pismen v txt souboru? Snazim se to zjitit pres forech jako souhlasky a samohlasky ale nejak to nejde ... Tak jestli bych mohl pozadat jeste o radu... Dekuju predem

Nahoru Odpovědět
8.3.2013 0:20
Rád se učím novým věcem. A věci co nechápu rád pochopím a naučím.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 50 zpráv z 54.