Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.03.14;
Скачать: CL | DM;

Вниз

Ув. мастера. Немогу сравнить два str значения...   Найти похожие ветки 

 
Michael C   (2002-02-26 10:03) [0]

к примеру
133.178.33.55 и 133.178.33.254
Нужно бы проверить эти строки по всем цифрам до .33
Если совпадает то пропскаю и сравниваю след. две строки???


 
gek   (2002-02-26 10:08) [1]

Обрежь до последней запятой, удали оставшиеся, переведи
в цифровой и вперед с песнями


 
Michael C   (2002-02-26 10:11) [2]

А по проще есть варианты????


 
Val ©   (2002-02-26 10:23) [3]

if copy(IPStr1,1,6)=copy(IPStr2,1,6) then...


 
Michael C   (2002-02-26 10:46) [4]

Ну ведь есть то и адреса типа ххх.ХХ.ххх.хх


 
Michael C   (2002-02-26 10:51) [5]

Я то маленькую деталь упустил, мне нужна именно 33 подсетка!
То есть если два компа этой сети то нужно пропускать, все остальные не надо пропускать


 
Val ©   (2002-02-26 11:15) [6]

если так, тогда пройдись в цикле до 2-й точки(счетчик), затем считывай символы в отдельную строку, пока не встретится точка и сравни их с "33"


 
Alx2 ©   (2002-02-26 11:21) [7]

Вообще, это делается через битовые маски целочисленного представления IP номеров. На всякий случай, нарисовал преобразование IP строки в integer.
Наверняка, уже есть стандартные функции, которые это все делают. Но тут сложностей нет и для самостоятельного исполнения...

Function IpStrToInt(Const IP: String): Integer;
Function GetNextPart(Var K: Integer): Byte;
Begin
Result := 0;
While (K <= Length(IP)) And (IP[K] <> ".") Do
Begin
Result := 10 * Result + Byte(IP[K]) - Byte("0");
inc(K);
End;
If IP[K] = "." Then inc(K);
End;
Var
Bytes: Array[0..3] Of Byte Absolute Result;
Var K: Integer;
Begin
K := 1;
Bytes[3] := GetNextPart(K);
Bytes[2] := GetNextPart(K);
Bytes[1] := GetNextPart(K);
Bytes[0] := GetNextPart(K);
End;

Procedure MakeIt(IPStrs : TStringList); // Список IP строк передаем сюда
Var TestIP: Integer;
k : integer;
Begin
TestIP := IpStrToInt("133.178.33.55") Shr 8; // У Образца берем только старшие 3 байта.
for k := 0 to IPStrs.Count - do
If TestIP = (IpStrToInt(IPSTrs[k]) Shr 8) // Если совпадают три старших байта
Then
Пропустить;
End;




 
Alx2 ©   (2002-02-26 11:30) [8]

В этом конкретном случае, все-таки, лучше послушать Val © (26.02.02 11:15). Из-за выигрыш в скорости.


 
Michael C   (2002-02-26 11:56) [9]

А что если выбрать из адреса последнюю запятую, все что правее убрать, и записать в пер.
Есть какая то функция забыл..


 
Alx2 ©   (2002-02-26 12:16) [10]

посмотри StrRScan


 
Григорий Ситнин ©   (2002-02-26 13:22) [11]

Есть замечательная функция LastDelemiter(). Рекомендую.



Страницы: 1 вся ветка

Текущий архив: 2002.03.14;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.013 c
1-43112
Anonim
2002-02-28 09:10
2002.03.14
Delphi 6


14-43167
Igor_thief
2002-01-30 17:38
2002.03.14
Если не слом, то почитаете.


3-42939
Саша
2002-02-06 11:47
2002.03.14
Как записать значение в BLOB поле


3-42945
tmp_user
2002-02-15 02:53
2002.03.14
Обработка ошибок


4-43226
Rustam
2001-12-19 09:38
2002.03.14
Disable Remote Shutdown???