Показать сообщение отдельно

  #5  
Старый 12.06.2010, 19:00
POS_troi
Познавший АНТИЧАТ
Регистрация: 01.12.2006
Сообщений: 1,769
С нами: 10233548

Репутация: 1118


По умолчанию

Да и так прийдется делать отдельные парсеры для данных.

Ща сижу думаю алгоритм как это все красиво потом в табличку запихнуть =)

З.Ы. Лучше бы я все это на перле или php написал .


Брррр.. нельзя писать под градусом. Криво но зато работает =))

PHP код:

string GetClickAndSumm
(string data)
{
    
boost::match_flag_type flags = boost::match_default;
    
std::string::const_iterator start, end ;
    
start  = data.begin();
    
end  = data.end();

    
char  OutData[65000] , temp[1024];
    
ZeroMemory(OutData,65000);
     
ZeroMemory(temp,1024);

    
boost::regex expressionDate("<tr><td colspan=\'5\' class=\'statdate\'>([0-9//-]+)</td></tr>");
    
boost::regex expressionSumm("<tr><td>&nbsp;</td><td>([a-z]+)</td><td>([0-9]+)</td><td>([0-9]+)</td><td>([0-9//.]+) р.</td></tr>");
    
string str(data);
    
boost::smatch whatDate, whatSumm;

    
lstrcat(OutData,"========================================================================\n");
    
lstrcat(OutData,"|    Date      |   Profile   |   PopUnder  |  ClickUnder  |    Summa    \n");
    
lstrcat(OutData,"|--------------+-------------+-------------+--------------+------------|\n");

    while((
boost::regex_search(start, end, whatDate, expressionDate, flags))&&(boost::regex_search(start, end, whatSumm, expressionSumm, flags)))
    {
   

  
lstrcat(OutData,"| ");
   
sprintf(temp,string(whatDate[1]).c_str());
   
lstrcat(OutData,temp);
   
lstrcat(OutData,"       ");
   
sprintf(temp,string(whatSumm[1]).c_str());
   
lstrcat(OutData,temp);
   
lstrcat(OutData,"         ");
   
sprintf(temp,string(whatSumm[2]).c_str());
   
lstrcat(OutData,temp);
   
lstrcat(OutData,"           ");
   
sprintf(temp,string(whatSumm[3]).c_str());
   
lstrcat(OutData,temp);
   
lstrcat(OutData,"           ");
   
sprintf(temp,string(whatSumm[4]).c_str());
   
lstrcat(OutData,temp);
   
lstrcat(OutData,"p. \n");

   
lstrcat(OutData,"|--------------+-------------+-------------+--------------+------------|\n");


    
start = whatDate[0].second;
    
flags |= boost::match_prev_avail;
    
flags |= boost::match_not_bob;

    }

    return 
string(OutData);
} 

Последний раз редактировалось POS_troi; 12.06.2010 в 22:28..
 
Ответить с цитированием