Форум: "Основная";
Текущий архив: 2002.03.14;
Скачать: [xml.tar.bz2];
ВнизУв. мастера. Немогу сравнить два 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.004 c