Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.01.2013, 16:49   #1
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
Вопрос Достать нужный IP из строки

Имеется
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  s, s2: string;
  Len: Integer;
begin
  s2 := '192.168.2.2';
  Len := Length(s2);
  s := '192.168.2.0~L0~P0!end-access'#$D#$A'192.168.2.255~L255~P255!end-access'#$D#$A'192.168.2.2~L2~P2!end-access'#$D#$A;

  // Ищем свой логин и пароль по IP-адресу
  if Pos(s2, s) <> 0 then
  begin
    // Получим свой логин и пароль
    s := Copy(s, Pos(s2, s), Pos('!end-access', s) - 1);
    // Удалим IP-адрес
    Delete(s, 1, Pos('~', s));
    Label1.Caption := Copy(s, 1, Pos('~', s) - 1); // Логин
    Delete(s, 1, Pos('~', s));
    Label2.Caption := Copy(s, 1, Length(s)); // Пароль
  end
end;
Нужно получить данные только по IP 192.168.2.2, а хватается первое попавшееся, например 192.168.2.255. Хотел сделать проверку на длину искомого IP, но вошёл в ступор.
Shouldercannon вне форума Ответить с цитированием
Старый 10.01.2013, 17:03   #2
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

я так понял разделителем значений является ~
ну тогда и искай '192.168.2.2'+'~'
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 11.01.2013, 05:33   #3
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  s, s2, temp: string;
begin
  s2 := '192.168.2.2';
  s := '192.168.2.0~L0~P0!end-access'#$D#$A'192.168.2.255~L255~P255!end-access'#$D#$A'192.168.2.2~L2~P2!end-access'#$D#$A'192.168.2.12~L12~P12!end-access';

  // Удалим #$D#$A
  s := Stringreplace(s, #$D#$A, '', [rfReplaceAll, rfIgnoreCase]);
  // Ищем свой логин и пароль по IP-адресу
  while Pos(s2, s) <> 0 do
  begin
    temp := Copy(s, 1, Pos('!end-access', s) - 1);
    // Если полученный IP-адрес совпадает с искомым
    if Copy(temp, 1, Pos('~', s) - 1) = s2 then
    begin
      // Удалим IP-адрес
      Delete(s, 1, Pos('~', s));
      Label1.Caption := Copy(s, 1, Pos('~', s) - 1); // Логин
      Delete(s, 1, Pos('~', s));
      Label2.Caption := Copy(s, 1, Pos('!end-access', s) - 1); // Пароль
      Break;
    end
    else Delete(s, 1, Pos('!end-access', s) + 10); // Удалим обработанное для дальнейшего поиска
  end;
end;
Shouldercannon вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как извлечь нужный текст из строки mariyavaryanitsa Microsoft Office Excel 16 01.11.2012 00:04
Найти нужный хэндл LifeD Win Api 3 17.08.2012 19:16
Нужный компонент V@mpir Помощь студентам 3 07.11.2009 22:55
Не открывается нужный файл Ruska882009 Операционные системы общие вопросы 4 24.05.2009 21:30
Ищу нужный тип строки Altera Общие вопросы Delphi 10 27.04.2009 08:36