potřebuju pomoc při streamovani logfile (jakmile se neco přičte okamžitě by to mělo být vidět na textboxu), zatím to mám na jedno tlačítko a dva textboxy a vypadá to nějak takto, je mi jasné, že tohle nebude live streamování s podmínkama u while(). Jsem zatím zelenac v C#.
Takže co potřebuji, log file má asi 25k řádků za hodinu. Tudíž potřebuji aby běžel ten parser v live streamu (okamžitě jakmile se zmeni prvni log načítat do) nevím, jak to ale udělat zatím... :) díky moc :)
private void button1_Click(object sender, EventArgs e)
{
string path = @"C:\\Users\\Marek Schwarz\\Desktop\\zakladni log.txt";
string pathoff = @"C:\\Users\\Marek Schwarz\\Desktop\\log.txt";
StreamReader reader = new StreamReader(path);
StreamWriter writer = new StreamWriter(pathoff);
// promenne
while (reader.EndOfStream == false)
{
//vytahne všechna data, se kterymi chci pracovat do textbooxu1 a log.txt
}
//***********************************************************************************
string path1 = @"C:\\Users\\Marek Schwarz\\Desktop\\log.txt";
string pathoff1 = @"C:\\Users\\Marek Schwarz\\Desktop\\logfinal.txt";
StreamReader reader1 = new StreamReader(path1);
StreamWriter writer1 = new StreamWriter(pathoff1);
//promenne
while (reader1.EndOfStream == false)
{
// vyplní do spravnych promennych data, ktera jsem potřeboval, vyplni textbox2 a logfinal.txt
}
writer.Close();
reader.Close();
writer1.Close();
reader1.Close();
}
No, jsem z veškerých těch tříd sharpu celkem jelen, dělám C++ a tam je pár tříd a každá má pár funkcí, zbytek si musí člověk napsat, tady je tam 100 tříd a každá má mnohem víc metod.
Díky za tip se stringama...
No nicméně nevím jak to implementovat do mýho softu ten filesystemwatcher (je to celkem složitá podtřída, teda alespon mi to tak přijde) :( co mám tedy změnit v tom základním schématu... stále potřebuji docílit toho, aby se mi streamovaly listboxy (první while zaplní první listbox datama, se kteryma chci pracovat a druhej už zaplní druhej listbox datama (promennyma) se kteryma budu dale pracovat v softwaru) (takhle to funguje jen na tlačítko button1 :D a ještě se to načítá všechno od začátku, což je nemyslitelné, aby se načítalo vždy např. milion řádků :-) ).. Vím, že ten tip s tím filesystemwatcherem bude určitě dobrej, jen nevím jak udělat to aby to fungovalo tak jak má :-)
#3MadmaX
Tak když děláš v C++, není nic jednoduššího než to udělat jako nativní aplikaci a použít WinAPI funkce FindFirstChangeNotification, WaitForSingleObject a FindNextChangeNotification...
Radek Chalupa
- individuální konzultace, školení programování (C/C++, WinAPI, COM, ActiveX, ATL, C#, NET Framework, MFC)
- vývoj software na zakázku http://www.radekchalupa.cz
co je na tom složitého, FileSystemWatcher najdeš v toolboxu, na něj poklepeš myší, on se přidá k formu, do filtru mu nastavíš soubor, který chceš sledovat a pak poklepeš na událost Changed a do ní přidáš to co chceš aby to dělalo po změně toho souboru (načtení..).
Pokud to chceš dělat klasicky v C++, tak jak píše Radek Chalupa.