Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 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
1-97646
-= Demon =-
2003-06-19 10:50
2003.06.30
TListView в WinXP


14-97798
ZeroDivide
2003-06-11 11:26
2003.06.30
даунгрейд вашего компьютера


9-97467
Nevel
2003-01-16 05:41
2003.06.30
Людт помогите - НУЖНА СРОЧНО ИГРА


14-97858
Иксик
2003-06-11 11:51
2003.06.30
Форматы аудиозаписи


14-97843
Silver_
2003-06-12 10:57
2003.06.30
Невосприинчивость к определенным внешним сообщениям





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский