Форум: "Потрепаться";
Текущий архив: 2003.06.30;
Скачать: [xml.tar.bz2];
Внизкак разбить ip в стринговой переменной на октеты... Найти похожие ветки
← →
EvgenTss (2003-06-13 15:09) [0]... желательно максимально красиво, без циклов
← →
Anatoly Podgoretsky (2003-06-13 15:18) [1]На какие октеты?
← →
Palladin (2003-06-13 15:42) [2]такие требования
что значит максимально красиво?
var
IPParts:TStringList;
IPParts:=TStringList.Create;
IPParts.Delimiter:=".";
IPParts.DelimitedText:=IPString;
так красиво?
это надо?
или что у тебя там в стринговой переменной? число?
← →
evvcom (2003-06-13 15:43) [3]Действительно на какие октеты? Может на байты? Октеты - значит восьмерки.
← →
EvgenTss (2003-06-13 15:48) [4]на байты
← →
EvgenTss (2003-06-13 15:52) [5]в стринговой переменной ip адрес, на выходе нужны четыре переменные типа байт. есть простая функция для данного преобразования?
← →
evvcom (2003-06-13 16:03) [6]А почему с циклами некрасиво? По-моему вполне.
← →
EvgenTss (2003-06-13 16:09) [7]ок, уговорил
← →
Palladin (2003-06-13 16:19) [8]
> EvgenTss (13.06.03 15:52)
есть простая функция, тебе просто написать ее лень
type
TIPBytes=array [1..4] of byte;
function ParseIP(p_strIP:string):TIPBytes;
begin
result[4]:=1;
while pos(".",p_strIP)<>0 do
begin
result[result[4]]:=strtoint(copy(p_strIP,1,pos(".",p_strIP)-1));
p_strIP:=copy(p_strIP,pos(".",p_strIP)+1,length(p_strIP));
result[4]:=result[4]+1;
end;
result[4]:=strtoint(p_strIP);
end;
← →
EvgenTss (2003-06-13 16:42) [9]to Palladin
мне не лень, я уже сам всё сделал, просто хотел узнать на будущее нельзя ли проще.
Спасибо.
← →
vuk (2003-06-13 16:48) [10]Кстати о птичках... Вспомнилось тут... Не знаю, как в других ОС, а в Windows функции преобразования строки в IP адрес работают так, что если часть адреса начинается с 0, то эта часть интерпретируется как записанная в восьмеричной системе счисления.
То есть следующие два адреса эквивалентны:
123.0123.123.012
123.83.123.10
← →
DVM (2003-06-13 18:08) [11]
> Anatoly Podgoretsky © (13.06.03 15:18)
> На какие октеты?
2^8 = 256
255.255.255.255 - ничего не напоминает? Это октет называется.
← →
HolyGlory (2003-06-13 18:39) [12]
procedure IpTo8b(S:String;var a,b,c,d:Byte);
var t:Integer;
v:String;
procedure cut;
begin
t:=Pos(".",S);
v:=Copy(S,1,t-1);
Delete(S,1,t);
end;
begin
cut;a:=inttostr(v);
cut;b:=inttostr(v);
cut;c:=inttostr(v);
d:=inttostr(S);
end;
← →
clickmaker (2003-06-13 19:16) [13]Предлагаю объявить конкурс на лучшее преобразование ip в октеты. Приз получит тот, кто сможет сделать это в одной строчке (не пользуясь готовыми ф-иями)
← →
Федя (2003-06-13 19:37) [14]В нормальных языках это делается так:
sscanf(ip,"%d.%d.%d.%d",ip1,ip2,ip3,ip4)
P.S. Велик и могуч руССкий язык
← →
Aldor (2003-06-13 22:31) [15]2Федя
>sscanf(ip,"%d.%d.%d.%d",ip1,ip2,ip3,ip4)
sscanf(ip,"%d.%d.%d.%d", &ip1, ...
:)
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2003.06.30;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.007 c