Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
3-42959
harismatik
2002-02-14 13:54
2002.03.14
Поле для времени


7-43197
Darker2
2001-10-28 07:54
2002.03.14
COM Port. Помощь в начинании.


14-43158
EAlexander
2002-01-30 15:26
2002.03.14
Сравнение doc файлов (MS Word)


7-43189
Alexander Beliy
2001-12-07 23:07
2002.03.14
CPU, Memory, Modem (ОЧЕНЬ СРОЧНО !!!)


1-43005
метеоролог
2002-02-28 15:30
2002.03.14
компонент DELPHI3





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский