Diskuze: pomoc při
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 5 zpráv z 5.
//= 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.
Čau, tak jsem to částečně vyřešil (vážně jen částečně) tím, že jsem otevřel jeden na 009 a jeden na 007, s tímto by to už mělo jít, samozřejmě s tím, že dám do nějakého cyklu to 007 (načítání třeba po 20ms), nebýt bugu s pozicí, pozici kterou to načítá opět špatně...
Viz obrázek... link
Nahoře je verze, která nepočítá s časovým zpožděním mezi 009 a 007,
ale když má všechna data pohromadě tak funguje naprosto správně. Verze
dole s tím zatím taky nepočítá, ale je nachystána pro to, aby počítala
(viz kód tohoto příspěvku)....
problém s pozicí je zřejmý u čísla 15. na obrázku... cyklus 009 předá špatně pozici a místo načtení hned prvního 007, což je nejdůležitější načte až 2., který je k ničemu
Neví někdo jak to vyřešit? Ten problém s pozicí, se zbytkem bych si už měl poradit.
private void timer1_Tick(object sender, EventArgs e)
{
FileStream fw = new FileStream(@"log.txt", FileMode.Open, FileAccess.Write, FileShare.ReadWrite);
StreamWriter writer = new StreamWriter(fw);
fw.Seek(logpos, SeekOrigin.Begin);
//009
try
{
// cteni pokerstars.log.0 a zapisovani do log.txt
FileStream fr = new FileStream(pathlogfile, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
StreamReader reader = new StreamReader(fr);
//nastaveni pozice
fr.Seek(pspos, SeekOrigin.Begin);
//prvni cyklus; cte radky z pokerstars.log.0, ktere se maji vytahnout do log.txt
//******************************************************************* 1. CYKLUS ********************************************************************
while (reader.EndOfStream == false)
{
string text = reader.ReadLine();
if (text.Contains("MSG_0x0009-T"))
{
string cardtemp = text;
text = reader.ReadLine();
// iffirst:
if (text.Contains("::: "))
{
string cardtemp1 = text;
text = reader.ReadLine();
// ifsecond:
if (text.Contains("::: "))
{
i++;
string cardtemp2 = text;
writer.WriteLine(i + " " + cardtemp + " " +
cardtemp1 + " " + cardtemp2);
listBox1.Items.Add(i + " " + cardtemp + " " +
cardtemp1 + " " + cardtemp2);
cislo1 = cardtemp.Split(' ');
//listBox1.Items.Add(cislo1[2]);
break;
}
else
{
text = reader.ReadLine();
// goto ifsecond;
}
}
else
{
text = reader.ReadLine();
// goto iffirst;
}
}
}
pspos = fr.Position;
//listBox1.Items.Add(pspos);
reader.Close();
fr.Close();
}
catch (Exception ex)
{
listBox1.Items.Add("***009*** " + ex.Message);
}
//007
try
{
FileStream fr2 = new FileStream(pathlogfile, FileMode.Open,
FileAccess.Read, FileShare.ReadWrite);
StreamReader reader2 = new StreamReader(fr2);
//******* TADY VZNIKÁ PROBLÉM, PROTOŽE SE POZICE NEPŘEDÁ PŘESNĚ
fr2.Seek(pspos, SeekOrigin.Begin);
//******* TADY VZNIKÁ PROBLÉM, PROTOŽE SE POZICE NEPŘEDÁ PŘESNĚ
pspos1 = fr2.Position;
listBox1.Items.Add(pspos1);
while (reader2.EndOfStream == false)
{
string text = reader2.ReadLine();
cislo2 = text.Split(' ');
if (text.Contains("MSG_0x0007-T") && text.Contains(cislo1[2]))
{
string stacktemp = text;
text = reader2.ReadLine();
if (text.Contains("'F'") || text.Contains("'w'"))
{
string stacktemp1 = text;
text = reader2.ReadLine();
if (text.Contains("'C'") || text.Contains("'c'") ||
text.Contains("'W'"))
{
string stacktemp2 = text;
text = reader2.ReadLine();
if (text.Contains("'*'"))
{
string stacktemp3 = text;
writer.WriteLine(i + " " + stacktemp + " " +
stacktemp1 + " " + stacktemp2 + " " + stacktemp3);
listBox1.Items.Add(i + " " + stacktemp + " " +
stacktemp1 + " " + stacktemp2 + " " + stacktemp3);
//listBox1.Items.Add(cislo2[2]);
//listBox1.Items.Add(pspos);
break;
}
else
{
writer.WriteLine(i + " " + stacktemp + " " +
stacktemp1 + " " + stacktemp2);
listBox1.Items.Add(i + " " + stacktemp + " " +
stacktemp1 + " " + stacktemp2);
break;
}
}
}
}
}
reader2.Close();
fr2.Close();
}
catch (Exception ex)
{
listBox1.Items.Add("***007*** " + ex.Message);
}
logpos = fw.Position;
writer.Close();
fw.Close();
//druhy cyklus asociuje s promennymi veskera potrebna data z log.txt
//*********************************** 2. CYKLUS *******************
//a přejmenujte prosím název tohoto vlakna nějak normálně, třeba problém s pozicí díky
Zobrazeno 5 zpráv z 5.