Главная страница
    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.005 c
1-43110
DDDeN
2002-02-27 10:39
2002.03.14
Меню из ресурса


14-43185
ilysha
2002-01-27 18:57
2002.03.14
Всего анкет: 3621 мужчин: 3486, женщин: 135


14-43149
kay
2002-01-30 08:40
2002.03.14
String


3-42963
Ulikoff
2002-02-15 10:48
2002.03.14
Настройка БД по сети


3-42922
Roman Tutov
2002-02-14 10:34
2002.03.14
Перенос строки из DBGreed в String Greed





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