Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Записать диапазоны в массив и сравнить с текущим IP  (Прочитано 3269 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Shouldercannon
Постоялец

ru
Offline Offline

« : 30-05-2010 07:46 » 

Уважаемые форумчане, помогите пожалуйста реализовать следующее. Задача заключается в том, чтобы загрузить из файла диапазоны IP и сравнить их с IP присоединяющегося. Файл *.cfg с таким содержимым:
3
127.0.0.0
127.0.0.255
128.0.0.0
128.0.0.255
129.0.0.0
129.0.0.255

При чтении командой ReadLn, в первой строке глубина цикла, от 1 до этого значения. Затем, в цикле подряд два оператора чтения ReadLn, первый сохраняет в запись ячейки "От", второй в запись "По". Сам массив от 1 до значения, что считано с первой строки файла.
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 30-05-2010 07:48 » 

И?
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Shouldercannon
Постоялец

ru
Offline Offline

« Ответ #2 : 30-05-2010 10:01 » 

Код:
...
var
  Data: TStringList;
  Range, s: Integer;
...
procedure TForm1.FormCreate(Sender: TObject);
begin
Data := TStringList.Create;
  Data.Duplicates := dupIgnore;
end;
 
procedure TForm1.BLoadClick(Sender: TObject);
begin
Data.LoadFromFile('IPRanges.cfg'); //Загружаю
  Memo1.Text := Data.Text; //Вывожу (для себя)
 
//Тут опрделяю сколько нужно считывать "C" - "По"
Range := StrToInt(Copy(Data.Text, 1, 1));
  s := 0;
    while  s < Range do
      begin
        s := s + 1;
      end;
end;
Не знаю правильно ли я начал, и что делать дальше.
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 30-05-2010 10:22 » 

Shouldercannon, я бы сделал структуру с парой значений диапазона (хранить одно значение можно в без знаковом четырех байтном целом) и загружал пары в список таких структур. Сравнение можно производить перебором списка.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines