Показать сообщение отдельно
  #5  
Старый 01.09.2010, 21:51
Аватар для Sevas
Sevas Sevas вне форума
Прохожий
 
Регистрация: 17.06.2009
Сообщения: 20
Репутация: 10
По умолчанию

Сделал сервер с помощью ServerSocket, на который отправляется текстовая строка вида
Код:
500 12.01
Два числа, первое целое, второе с точкой, с заранее неизвестной длиной всей строки.
из этой строки мне нужно приравнять
IAS = 500
tNext = 12.01


Код:
procedure Tf_main.ServerSocket1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
var
  i,text_len, probel :integer;
  IAS: real;
  text  : widestring;
  x,y,z,r : double;
  X_string,Y_string,Z_string, R_string,tNext,IAS_string: string;
begin

      text_len := length(Socket.ReceiveText);//получаем длину всей строки
      text := (Socket.ReceiveText); //сама строка 

      for i := 0 to text_len do
        if text[i] = ' ' then probel := i; //ищем где находится пробел

      IAS   := strtofloat(copy (text,0,probel - 1)); //IAS = всё что до пробела 
      tNext := (copy (text,probel + 1,text_len));   //tNext = всё что после пробела

но при получении строки, вылазит ошибка в строке, выделенную красным.



Если этот же алгоритм прогонять со строкой взятой из Edit`a то всё работает.
В чём может быть проблема?
Ответить с цитированием