Модераторы: feodorv
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Формирование и вывод данных 
:(
    Опции темы
metoflex
Дата 7.7.2011, 08:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 126
Регистрация: 18.4.2010

Репутация: нет
Всего: нет



Приветствую Уважаемые пользователи!

Мучаюсь второй день. Я на сервере формирую информацию (Сама цель - написание trace). И после формирования укидаю ее в веб-интерфейс. 

Код формирования:

Код

std::string somestring="", resultstr="";
int l=0;
resultstr="";
somestring="";

while (l<3)
             {
             switch(l){
          case 0:
              sprintf((char*)somestring.c_str(),"%2d:    %4d ms",ttl, time[0]);
              resultstr+=somestring;
          break;
          case 1:
              sprintf((char*)somestring.c_str()," %4d ms ", time[1]);
              resultstr+=somestring;
          break;
          case 2:
              sprintf((char*)somestring.c_str()," %4d ms     %i.%i.%i.%i<br><br>",
                                      time[2],rcvdIP[0],rcvdIP[1],rcvdIP[2],rcvdIP[3]);
              resultstr+=somestring;
          break;
          default:
          printf ("DEFAULT");
          }
         l++;
 }

    resultstr+="";
    strcpy(outBuf, resultstr.c_str());
    websWrite(wp, outBuf);
    my_socket.CloseSocket();
    websFooter(wp);
    websDone(wp, 200);
    resultstr="";
    return;



Сам trace проходит успешно, но вот инфу выводит следующую:

0 ms 192.168.15.254

br> br> br> br> br> br> 


Пробовал использовать вместо while - for, пробывал также уходить от switch к if, думал мб в этом засада, но все тщетно.
Подскажите пожалуйста в чем моя ошибка или мб можно то, что я реализую через switch и string реализовать как-то иначе. Уже 8 часов за 2 дня потратил на исправление этого бага.

В свою очередь, если использовать код вида:

Код

std::string somestring="", resultstr="";
resultstr="";
somestring="";

for(int i=0; i<=2; i++)
         {

         switch (i)
         {
         case 0:
         {

                 sprintf((char*)somestring.c_str(),"%2d:    %4d ms",ttl, time[i]);
resultstr+=somestring;

         }break;
         case 1:
         {

                 sprintf((char*)somestring.c_str()," %4d ms ", time[i]);

         }break;
          case 2:
          {

                  sprintf((char*)somestring.c_str()," %4d ms     %i.%i.%i.%i<br><br>",
                          time[i],rcvdIP[0],rcvdIP[1],rcvdIP[2],rcvdIP[3]);


                  resultstr+=somestring;

              printf("\n%s\n",resultstr);
          }break;
         };
         }

    resultstr+="";
    strcpy(outBuf, resultstr.c_str());
    websWrite(wp, outBuf);
    my_socket.CloseSocket();
    websFooter(wp);
    websDone(wp, 200);
    resultstr="";
    return;


Вывод получаю в вебе следующий:

1 ms 192.168.15.254

0 ms 192.168.25.254

1 ms 195.151.213.90

3 ms 193.232.246.118

3 ms 193.232.246.118

3 ms 81.19.64.76

4 ms 81.19.64.189

3 ms 81.19.70.3


т.е. такое ощущение, как будто проге абсолютно наплевать на то, что я творю в case 1 и  case 2.



Спасибо Огромное!


Это сообщение отредактировал(а) metoflex - 7.7.2011, 08:15
PM MAIL   Вверх
metoflex
Дата 7.7.2011, 09:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 126
Регистрация: 18.4.2010

Репутация: нет
Всего: нет



Решение нашел:

Код

for(int i=0; i<=2; i++)
     {
         switch (i)
         {
         case 0:
         {
             sprintf(outBuf,"%d:    %d ms",ttl, time[i]);
             websWrite(wp, outBuf);
         }break;
         case 1:
         {
             sprintf(outBuf,"    %d ms", time[i]);
             websWrite(wp, outBuf);

         }break;
         case 2:
         {
             sprintf(outBuf," %d ms %i.%i.%i.%i<br>",
              time[2],rcvdIP[0],rcvdIP[1],rcvdIP[2],rcvdIP[3]);
             websWrite(wp, outBuf);
             free(outBuf);
         }break;
         };
}


Но не красивое, если кто-то сможет подсказать, что-то более иили менее адекватное, чем я сваял, буду весьма благодарен.

Это сообщение отредактировал(а) metoflex - 7.7.2011, 09:33
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0390 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.