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š?
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...
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
privatevoid 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 10355 ZAPISDOSOUBORUACETNI(sam,slovpocet,...)
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...
publicstring 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 11520 ZAPISDOSOUBORUACETNI(sam,slovpocet,...)
Jak mohu zjistit v textaku pocet řádku když jsme u toho.
kazdopadne jako standartni metoda při zapisu do souboru se pouziva
StreamWriter ale jako
pouzit tridu File je urcite jednodussi jenze ne všichni se v tom dokazi
orientovat
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č?
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...
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ší.
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;
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 11822 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++;
}
}
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.
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;
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
nevim tedy, jestli cteš soubor, a pak do něj chceš zapsat tak mi to kaky
nešlo, po čtení je potřeba soubor zavřít aby nebyl využíván
čtenářem. dej po přečtení ctenat.Close();
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.