Re: Обработка данных полученных от сервера!
От: dkotov  
Дата: 13.07.06 13:35
Оценка:
Здравствуйте, Dyakon_Frost, Вы писали:

D_F>Здравствуйте!


D_F>Пишу клиент и сервер на C++ Builder 6 используя ClientSocket и ServerSocket.

D_F>Мне необходимо получить данные от сервера о файлах находящихся в заданной директории!
D_F>В клиенте они выводятся в Memo.
D_F>Есть проблема: когда вывожу данные, то они не всегда выводятся построчно, бывает так, что все названия файлов находятся в одной строке!
D_F>Как избежать этой проблемы?

D_F>Код клиента (вывод в Memo):


D_F>
D_F>void __fastcall TForm1::ClientSocket1Read(TObject *Sender,
D_F>      TCustomWinSocket *Socket)
D_F>{
D_F> AnsiString buff;
D_F> buff = Socket->ReceiveText();
D_F> //-------------вывод-----------------//
D_F> Memo1->Lines->Add(buff);
D_F>}
D_F>

или Memo1->Lines->Text = Memo1->Lines->Text + buff;
и читай ниже

D_F>Код сервера (поиск файлов):


D_F>
D_F> if (FindFirst(Cur_cat + "*.*", faAnyFile, sr) == 0)
D_F>  {
D_F>   do
D_F>    {
D_F>     if ((sr.Attr & faDirectory) != faDirectory)
D_F>      {
D_F>       ServerSocket1->Socket->Connections[0]->SendText(sr.Name);
D_F>      }
D_F>    } while (FindNext(sr) == 0);
D_F>    FindClose(sr);
D_F>  }
D_F>

Не делай SendText в цыкле, сначала собери все имена в одну строку, именя разделяй "ЕНТЕРОМ",
потом посылай.

D_F>Думаю что надо при получении данных в клиенте, записать их в буфер, а потом его обрабатывать!

D_F>Но не знаю за что зацепиться.

D_F>Заранее спасибо!
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.