Diskuze: poradíte mi prosím, jak vytvořit tento projekt na debugování?
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 10 zpráv z 10.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
A s čím si nevíš rady? Tohle je zrovna celkem jednoduché...
Mě by spíš zajímalo, v jakém programovacím jazyku to má být? Protože tohle určitě nepatří to "Volné diskuze"...
v C# - console application
Já bych si vzal ten text a hledal v něm požadovanou frázi. Pokud by byla nalezena tak jí vymazal a začal hledat znovu do té doby dokud by tam žádná nebyla.. Použít cyklus
while( bugFound("Fráze") ) { /* DELETE IT */ }
Nezkoušel jsem to, tak snad mě někdo opraví pokud se mýlím
A ten soubor dokážeš uložit, načíst? Jenom nevíš jak odstranit slovo BUG z textu?
Kdyžtak to udělej tak, jak psal Paranormal:
Prohledávej zadaný vstup, dokud v něm bude slovo bug. To odstraň. Ulož.
A myslím, že v C# existuje i metoda, která okamžitě změní text v jiný a to všude (takové ctrl+h). Hodně se to používá na odstraňování mezer z textu
C# .NET:
string fraze = "";
string kontrola = "";
using (StreamReader sr = new StreamReader(@"program.txt"))
{
fraze = sr.ReadLine();
kontrola = sr.ReadLine();
sr.Flush()
}
while (fraze.Contains(kontrola))
{
fraze.Replace(kontrola, "");
}
using (StreamWriter sw = new StreamWriter(@"bezbugu.txt"))
{
sw.WriteLine(fraze);
sw.Flush();
}
Napsal jsem to zpaměti, takže nezručuju, že tam nemám chybu. Pokud ti Visual Studio Chybu nahlásí, nebude snad tak těžké ji odstranit. Pokud si nevíš rady se zapisováním či umístěním textáčů, podívej se na zdejší sekci C# Práce se soubory a to zejm. na první tři díly.
Pokud jsi doteď nevěděl, jak to pracuje, tyto články ti jistě odpoví. Na závěr bych si dovolil malý odkaz: www.dotnetperls.com/…-of-a-string
Pokud něco nebude fungovat, klidně se ještě pozeptej
Pavel Novák mi odepsal do soukromých zpráv, ale řešení neměl. Proto zde píšu opravu, vše už šlape jak má.
První problém je jednoduchý na vyřešení: using System.IO
Další problém byl, že neexistuje StreamReader.Flush(), metoda se jmenuje
Dispose()
Poslední problém byl, že metoda String.Replace() navrací nový string,
nikoliv že modifikuje původní.
Tak jako tak zde přikládám kompletní, funkční otestovaný kód.
using System.IO;
namespace Debuger
{
class Program
{
static void Main(string[] args)
{
string fraze = "";
string kontrola = "";
using (StreamReader sr = new StreamReader(@"program.txt"))
{
kontrola = sr.ReadLine();
fraze = sr.ReadLine();
sr.Dispose();
}
while (fraze.Contains(kontrola))
{
fraze = fraze.Replace(kontrola, "");
}
using (StreamWriter sw = new StreamWriter(@"bezbugu.txt"))
{
sw.WriteLine(fraze);
sw.Flush();
}
}
}
}
Pro zkrášlení můžete ještě připsat:
Console.WriteLine("Debugovaný program: {0}", fraze);
Console.ReadKey();
Jedno malé upozornění, soubor program.txt ukládejte v Unicode, jinak program přečte místo diakritiky nějaké nesmysly. Program si umístěte např. do dokumentů, ať nemá UAC problém s přístupem k souborům.
Zobrazeno 10 zpráv z 10.