Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.04.2009, 21:58   #1
-=CrasH=-
 
Регистрация: 19.04.2009
Сообщений: 3
Сообщение C++. Проблема с раскидкой текста по ячейкам StrinGrid

Всем Христос Воскрес!
Краткое пояснение - В моей клиент-серверной программе не получается разбить текст, присланный клиентом на сервер, по сетке StrinGrid. Поскольку более конкретный вопрос поставить не получится, прошу помощи у знающих людей и выкладываю сюда части кода программы с детальными пояснениями:
Код:
void __fastcall TForm1::Button3Click(TObject *Sender)
{
AnsiString t;
for(int i=0;i<ServerSocket1->Socket->ActiveConnections;i++)
 { t=ServerSocket1->Socket->Connections[i]->RemoteHost;
   ServerSocket1->Socket->Connections[i]->SendText("1");
 }
}
Таким образом, программа-сервер определяет активные соединения и при нахождении таковых отсылает сообщение - единичку.

Код:
void __fastcall TForm1::ClientSocket1Read(TObject *Sender,
      TCustomWinSocket *Socket)
{
 AnsiString msg;
 msg = Socket->ReceiveText();

if (msg=="1")
{ WinExec("1.bat", SW_RESTORE);
  Sleep(2000);
  ListBox1->Items->LoadFromFile("crash.txt");

  char p[100];
  strcpy(p, ListBox1->Items->Strings[5].c_str());
  int size = ListBox1->Items->Strings[5].Length();

   int t=0;
   int ia=0;
   while(p[ia]==':')
   {
    ia++;   t=ia;
   }

    AnsiString p1="";
   ia=t+1;
   while(p[ia]<size)
   { p1+=p[ia];
    ia++;
   }

   strcpy(p, ListBox1->Items->Strings[26].c_str());
   size = ListBox1->Items->Strings[26].Length();

   t=0;
   ia=0;
   while(p[ia]==':')
   {
    ia++;   t=ia;
   }

    AnsiString p2="";
   ia=t+1;
   while(p[ia]<size)
   { p2+=p[ia];
    ia++;
   }

   strcpy(p, ListBox1->Items->Strings[30].c_str());
   size = ListBox1->Items->Strings[30].Length();

  t=0;
   ia=0;
   while(p[ia]==':')
   {
    ia++;   t=ia;
   }

    AnsiString p3="";
   ia=t+1;
   while(p[ia]<size)
   { p3+=p[ia];
    ia++;
   }

  ClientSocket1->Socket->SendText(p1+'#'+p2+'#'+p3);
}
}
Дальше программа-клиент принимает сообщение и в данном случае, когда оно равно единице, запускает .bat-файл, согласно коду которого (ipconfig /all) в компонент ListBox загружается конфигурация опрашиваемого компьютера. Далее обработчики вырезают заданные строки 5, 26 и 30, а в этих строках только необходимые мне данные (думаю, в подробности можно не вдаваться). Затем через решетку я их соединяю и отсылаю программе-серверу.

Код:
void __fastcall TForm1::ServerSocket1ClientRead(TObject *Sender,
      TCustomWinSocket *Socket)
{
 AnsiString msg;
 msg = Socket->ReceiveText();

StringGrid1->Cells[0][0]="PC-Name";
StringGrid1->Cells[1][0]="Physical adress";
StringGrid1->Cells[2][0]="IP-adress";

StringGrid1->RowCount+=1;
   AnsiString p1="";
   char p[50];
   int size = msg.Length();
   strcpy(p, msg.c_str());

  int t=0;
   int ia=0;
   while(p[ia]!='#')
   { p1+=p[ia];
    ia++;   t=ia;
   }

StringGrid1->Cells[0][1]=p1;

   AnsiString p2="";
   ia=t+1;
   while(p[ia]!='#')
   { p2+=p[ia];
    ia++;   t=ia;
   }

StringGrid1->Cells[1][1]=p2;

   AnsiString p3="";
   ia=t+1;
   while(ia<size)
   { p3+=p[ia];
    ia++;   t=ia;
   }

StringGrid1->Cells[2][1]=p3;
}
И вот здесь, в программе-сервере облом - не получается правильно разбить присланные данные по ячейкам. В ячейку [0][1] вместо "pc" попадает "i", в ячейку [1][1] вместо "00-1F-C6-4E-87-36" попадает "Физический адрес . . . . . . . . . . : 00-1", в ячейку [2][1] вместо "10-тра-та-та" попадает "4|||8"...

В общем, ребята, прошу вашей помощи и заранее большое спасибо
-=CrasH=- вне форума Ответить с цитированием
Старый 20.04.2009, 13:46   #2
-=CrasH=-
 
Регистрация: 19.04.2009
Сообщений: 3
По умолчанию

Интересно, а почему так мало людей просмотрело эту тему?
-=CrasH=- вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема поиск и замена текста(Delphi) KirkMETAL Помощь студентам 4 26.07.2010 08:41
Проблема с выводом текста limon PHP 6 30.11.2008 20:03
Обрашение к фиксированным ячейкам Лубышев Помощь студентам 1 29.10.2008 13:47
проблема с печатью текста в винде Gorthaur Win Api 0 19.11.2007 18:46
Проблема с отображением текста ALR Свободное общение 0 18.02.2007 20:08