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, пятый - порт.
З.Ы. Кстати, если это связано с предыдущим постом - зачем сначала все собирать в строку, а потом парсить назад в числа?