//program má načítat ve streamu (LIVE) handy z PokerStars...
//vychází z log file.
//nejsem programátor, ale stále se učím! :-))
#include <iostream>
#include <fstream>
#include <string>
#include <cctype>
using namespace std;
int main ()
{
ifstream file;
file.open("C:\\Users\\Marek Schwarz\\Desktop\\PokerStars.log.0");
//NEJLÉPE, ABY TO OTEVÍRALO KOPII PRAVÉHO LOGU
string search0 = "MSG_0x0009-T";
string search1 = "MSG_0x0007-T";
string bazal = "TableAnimation::dealPlayerCards";
//nedulezite promenne
string find0;
string find1;
string air;
//dulezite promenne
string stack; //stack
string bb; //bb
string karta0; //hole find0
string karta1; //hole find1
string ID;
string pomlcky = "------";
string hvezdicky = "'*'";
int lineCount;
int i = 0;
int c = 0;
while (!file.eof()){ //POTŘEBUJI UPRAVIT PODMÍNKU CYKLU, TAK ABY ...
while(file.good()) //VŽDY NAČETLO AKTUALIZOVANOU VERZI LOGU, ...
{ //LOG SE STÁLE DOPLŇUJE A POTŘEBUJI TO ...
getline(file, air); //AKTUALIZOVAT ZHRUBA 3x ZA VTEŘINU.
++lineCount;
if (air == bazal){ //vstupní podmínka, program má načítat ve streamu handy z pokerstars
cout <<"Game no. "; // počet string bazal = "TableAnimation::dealPlayerCards" se rovná reélnému počtu hand odehraných
while (air != search0){ //kdyz se air nerovná MSG_0x0009-T, pustí to do cyklu
file >> air; //tyto podmínky načítají karty
while(air == search0){
file >> ID >> find0 >> find0;
if (find0 == pomlcky){
while(air == search0){
file >> air;
while(air == search0){
file >> find0 >> find0 >> find0;
file >> karta0 >> find0 >> karta1;
cout << ++i << ", ID " << ID << " holecards " << karta0 << karta1 ;
}
}
break;
}
else{
file >> karta0 >> find0 >> karta1;
cout << ++i << ", ID " << ID << ", holecards " << karta0 << karta1 ;
}
break;
}
}
while (air != search1){ //kdyz se air nerovná MSG_0x0007-T, pustí to do cyklu
file >> air; ////tyto podmínky načítají bb a stack
while(air == search1){
file >> find1 >> find1 >> find1 >> find1 >> find1 >> find1 >> find1;
if(find1 == hvezdicky){
file >> find1 >> find1 >> stack >> bb;
cout << ", stack " << stack << ", bb " << bb << ", Radek " << lineCount << endl;
break;
}
else{
cout << ", stack NENACTEN " << ++c << ", bb " << 0 << ", Radek " << lineCount << endl;
break;
// TADY BYCH POTŘEBOVAL, ABY TO ZAČALO VYHLEDÁVAT SMĚREM NAHORU (což asi není možné)...
// A NAŠLO PRVNÍ string hvezdicky = "'*'", POTÉ BYCH SI UŽ PORADIL, A JESTLI BY TO NEBYLO...
// MOŽNÉ, TAK ABY TO NAČETLO PŘEDCHOZÍ lineCount A POTÉ HLEDALO V ROZMEZÍ lineCount-1 PO...
// lineCount (SAMOZŘEJMĚ, ŽE BYCH TO DAL DO NĚJÁKÉHO POLE, ZE KTERÉHO BYCH NAČETL PŘEDCHOZÍ)...
// lineCount.
// DÁLE BY MĚ ZAJÍMALO, PROČ KDYŽ ODDĚLÁM: ...
/*
cout << ", stack NENACTEN " << ++c << ", bb " << 0 << ", Radek " << lineCount << endl;
break;
*/
// TAK TO ZOBRAZÍ JEN 156 hand NAROZDÍL OD PŮVODNÍCH 267.
// SPRÁVNĚ JICH MÁ BÝT 279. KDYŽ ODDĚLÁM I VŠECHNY PODMÍNKY NAČÍTÁNÍ KARET, STACKU A BB...
// TAK TO ZOBRAZÍ PŘESNĚ 279 HAND, COŽ JE S MÝM MOMENTÁLNÍM C++ UMEM NAD VRCHOLY MÉHO CHÁPÁNÍ :-(.
}
}
}
}
}
}
return 0;
}
//DÍKY MOC ZA KAŽDÝ TIP, JAK TO UDĚLAT LÉPE :-))