Показать сообщение отдельно
  #2  
Старый 12.11.2013, 19:04
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

1) Регекспы.
2) Pos, PosEx, Copy. Ищем первую точку, копируем все до нее, делаем StrToInt, затем ищем следующую точку, и т.д.
3) В лоб:
Код:
var data:array[0..4] of integer;
...
j := 0;
for i := 0 to 4 do
    data[i] := 0;
for i := 1 to length(str) do
begin
    if (str[i] >= '0') and (str[i] <= '9')
        data[j] := data[j] * 10 + ord(str[i]) - 48;
    else if (str[i] = '.') or (str[i] = ':')
    begin
        j := j + 1;
        if (j > 4)
            break;  // или сообщение об ошибке
    end;
    else
       break; // или сообщение об ошибке
end;
Тут как побочный эффект будут также парситься например 192:168:1:101.27015.
Первые 4 элемента массива будут IP, пятый - порт.
З.Ы. Кстати, если это связано с предыдущим постом - зачем сначала все собирать в строку, а потом парсить назад в числа?
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием