Главная страница
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.011 c
14-43137
Helen
2002-01-29 15:32
2002.03.14
SQL запрос SQL запроса компонента ADOQuery! (D5, MSSQL)


1-43010
wicked
2002-02-26 11:26
2002.03.14
про string


1-43045
Denis V
2002-02-25 14:20
2002.03.14
Как обрабатывать данные со сканера штрих кода ?


3-42960
KIR
2002-02-15 03:56
2002.03.14
Закладки


6-43131
ThaDrot
2001-12-24 18:42
2002.03.14
TCP-IP Info ?