![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
![]() Здравствуйте!
Такая проблема: Нужно разбить строку и записать ее в пять переменных Приблизительно так: Строка например: 192.168.1.101:27015 Например объявлены пять переменных (octetIP1 octetIP2 octetIP3 octetIP4 Port) и строку надо записать следующим образом что бы: octetIP1 = 192 octetIP2 = 168 octetIP3 = 1 octetIP4 = 101 Port = 27015 Перекопал много инфы и ничего не нашел. Проблема в том что IPадрес будет всегда разный и за ранее мне не известен. Подскажите пожалуйста как можно решить задачу? |
#2
|
||||
|
||||
![]() 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; ![]() Первые 4 элемента массива будут IP, пятый - порт. З.Ы. Кстати, если это связано с предыдущим постом - зачем сначала все собирать в строку, а потом парсить назад в числа? jmp $ ; Happy End! The Cake Is A Lie. Последний раз редактировалось Bargest, 12.11.2013 в 19:13. |
Этот пользователь сказал Спасибо Bargest за это полезное сообщение: | ||
Shaft (12.11.2013)
|
#3
|
|||
|
|||
![]() Спасибо! а если не сложно можно не большой примерчик пжл?
P.S. Я создаю свой Master Server, в предыдущей теме я пытался имитировать клиент игры и отправлял запросы на Официальный Master, мне нужно было принять ответ и полностью расшифровать его, что бы я потом мог сам отправлять эти ответы в правильном виде. |
#4
|
|||
|
|||
![]() Ну не то что бы совсем ничего, для моего случая не могу найти(
Спасибо! Буду пробовать |
#5
|
||||
|
||||
![]() Цитата:
Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |
#6
|
||||
|
||||
![]() Цитата:
Вот где тут парсинг строки? jmp $ ; Happy End! The Cake Is A Lie. |
#7
|
||||
|
||||
![]() Неужели действительно "ничего не нашёл"?
Код:
var ip: string; octetIP1, octetIP2, octetIP3, octetIP4, Port: Integer; begin ip := '192.168.1.101:27015'; octetIP1 := StrToInt(copy(ip,1,pos('.',ip)-1)); delete(ip,1,pos('.',ip)); octetIP2 := StrToInt(copy(ip,1,pos('.',ip)-1)); delete(ip,1,pos('.',ip)); octetIP3 := StrToInt(copy(ip,1,pos('.',ip)-1)); delete(ip,1,pos('.',ip)); octetIP4 := StrToInt(copy(ip,1,pos('.',ip)-1)); delete(ip,1,pos('.',ip)); Port := StrToInt(ip); end; Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj Последний раз редактировалось PhoeniX, 12.11.2013 в 19:12. |
Этот пользователь сказал Спасибо PhoeniX за это полезное сообщение: | ||
Shaft (12.11.2013)
|