Přetěžování metody pro čtení ze souboru – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Přetěžování metody pro čtení ze souboru – .NET – Fórum – Programujte.comPřetěžování metody pro čtení ze souboru – .NET – Fórum – Programujte.com

 

JiriVavru0
Návštěvník
4. 12. 2008   #1
-
0
-

Zdravím
Zajímalo by mne jak mám vyřešit následující problém?
Mám metodu, která načte data z txt souboru a postupně je vypíše v určité barvě.
Problém je, že když dám do uvozovek název souboru, vypíše se do kozole jenom tento řetězec..
Netuším co může být špatně(zkousel jsem to zapsat i bez uvozovek ale to také neprošlo)

Tuší prosím někdo, kde mám chybu?

Díky za každou radu..

Volání probíhá takto:

engine.Vypsani2("data.txt", ConsoleColor.DarkGreen);//Nacitam ze souboru

A metoda
//Zmena barvy textu a prirazeni pod prikazu CWL pod jednu metodu spolecne s postupnym VYPISEM
        public void Vypsani2(string nazev, ConsoleColor barva)

{
ConsoleColor p = Console.ForegroundColor;
Console.ForegroundColor = barva;
FileStream fs = new FileStream(nazev, FileMode.Open);//Otevreme soubor
StreamReader sr = new StreamReader(fs, Encoding.UTF8);

for (int i = 0; i < nazev.Length; i++)
{
Console.Write(nazev[i]);
Thread.Sleep(50);
}


}

Nahlásit jako SPAM
IP: 78.102.13.–
forstec0
Návštěvník
4. 12. 2008   #2
-
0
-

To JiriVavru : No vždyť taky vypisuješ jenom ten název, koukni se na ten cyklus. Ty nevypisuješ to, co je v souboru, s tím vůbec ten kód nic nedělá.

Nahlásit jako SPAM
IP: 89.176.141.–
forstec
JiriVavru0
Návštěvník
4. 12. 2008   #3
-
0
-

Omlouvám se, zapoměl jsem to tam dopsat ale i když to naradím, tak stále nefunguje korektně (resp. vubec)

     for (int i = 0; i < sr.Length; i++)

{
Console.Write(sr[i]);
Thread.Sleep(50);
}

Nahlásit jako SPAM
IP: 78.102.13.–
JiriVavru0
Návštěvník
4. 12. 2008   #4
-
0
-

Asi by bylo řešením uložit ten stream do řetězce, pak by to šlo vypsat bez problémů..ale jaká fce k tomu slouží?

Nahlásit jako SPAM
IP: 78.102.13.–
forstec0
Návštěvník
4. 12. 2008   #5
-
0
-

To JiriVavru :

StreamReader sr = new StreamReader(nazev);

String content = sr.ReadToEnd();

for (int i = 0; i < content.Length; i++)
{
Console.Write(content[i]);
Thread.Sleep(50);
}


Ale abych nekecal, nezkoušel jsem to.

Nahlásit jako SPAM
IP: 89.176.141.–
forstec
Japo0
Návštěvník
4. 12. 2008   #6
-
0
-

Pozor, nezapomínejte na uzavírání souborů, tedy na příkaz:

sr.Close();


Pokud je ten soubor malý, můžeš ho přečíst klidně až do konce a uložit to do řetězce. Pokud ale chceš mít trošku lepší řešení, použij toto:


StreamReader sr = new StreamReader(nazev);
for (int i = 0; i < content.Length; i++)
{
Console.Write((char)sr.Read());//sr.Read() přečte ze vstupního souboru jeden znak a vrátí ho
jako číslo typu int, pokud není znak k dispozici vrátí -1
Thread.Sleep(50);
}
sr.Close();

Nahlásit jako SPAM
IP: 90.176.243.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 53 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý