procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var
za,S1,S2: AnsiString;
z: Integer;
begin
S1 := Socket.ReceiveText; {Присваиваем S1 полученную строку из Socket}
za:=''; //Эта переменая служит для определения таблицы в которую нужно записать пришедшие данные
z := 0;
za:= Copy(S1, 1, 1);
Delete(S1, 1, 1 + Length(Delitel) - 1);
IF za='1' then
begin
DBNavigator1.BtnClick(nbInsert);
DBNavigator1.BtnClick(nbEdit);
end
else
begin
DBNavigator2.BtnClick(nbInsert);
DBNavigator2.BtnClick(nbEdit);
end;
repeat {Разделяем строку, если одновременно пришло несколько}
z := Pos(Delitel, S1); {Ищем раздлелитель Delitel в строке S1}
if z <> 0 then {Если найден делитель, тогда ...
Если не найден, то вы не добавили в конце отсылаемой строки Delitel !}
begin
S2 := Copy(S1, 1, z - 1); {Копируем одну пришедшую строку в S2}
Delete(S1, 1, z + Length(Delitel) - 1); {Удаляем уже скопированную строку}
If za='1'then Table1.Fields.Fields[j].Text:=S2
else
begin
If j=0 then F:=S2;
If j<=5 then Table2.Fields.Fields[j].Text:=S2 else Memo1.Lines.Add(S2);
end;
j:=j+1;
{Вызываем процедуру обработки полученных строк,
где S2 наша выделенная строка}
end;
until z = 0; {Повторять, пока будет не найден разделитель Delitel}
IF za='1' then DBNavigator1.BtnClick(nbPost) else DBNavigator2.BtnClick(nbPost);
[b]IF za='2' then
begin
AssignFile(outfile, 'C:\Test\Архив\'+F+'.txt');
ReWrite(outfile);
Writeln(outfile,str);
CloseFile(outfile);
end;[/b]
j:=0;
end;