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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.06.2010, 02:41   #11
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Цитата:
как получить адреса всех страниц в массив
Цитата:
я думал не парся
Мдя...

Поиск чего-л. тексте - это и есть парсинг. как Вы себе представляете поиск ссылок без поиска?

Цитата:
Не надо забывать, что в тэге href, ссылка может быть как в двойных кавычках, так и в одинарных, а может быть и вообще без кавычек...
Это в коде тоже надо бы предусмотреть
Да пожалуйста:
Код:
Var
 I, N, N1,N2,N3: Integer; // Счетчики
 St : Array of String; //Массив для ссылок
 S : String; //Исходный код страницы

Begin
S := IdHTTP1.Get('http://yandex.ru'); //Получаем код страницы
I := 0; //Обнуляем счетчик ссылок
While Pos('href="', S)<>0 Do //Пока не закончились ссылки в исходнике...
 Begin //Начинаем...

SetLength(St, I+1);//Увеличиваем вместимость массива ссылок на единицу

   N := Pos('href=', S); //Получаем позицию тега HREF
   Delete(S, 1, N + 5); //Удаляем все ДО него
   N1 := Pos('"', S); //Получаем позицию закрывающей кавычки
   N2 := Pos(' ', S); //Получаем позицию пробела
   N3 := Pos('''', S); //Получаем позицию закрывающей кавычки одинарной
   If (N1<N2) And (N1<N3) And (N1<>0) Then N := N1 Else //Находим то, что закрывает.
   If (N2<N1) And (N2<N3) And (N2<>0) Then N := N2 Else
    N := N3;
   St[i] := Copy(S, 1, N - 1);//Копируем ссылку в массив

Inc(I);//Увеличиваем счетчик ссылок
End;//Конец...
End;//По-любому конец.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ

Последний раз редактировалось Alex Cones; 12.06.2010 в 02:46.
Alex Cones вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получение дескрипторов ВСЕХ сокетов. mishanama Win Api 3 18.05.2010 14:48
Получение даных c Web-страниц mephist Microsoft Office Excel 3 16.10.2009 12:42
prox server и получение всех гиперссылок с сайта xaero93 Работа с сетью в Delphi 1 15.10.2009 08:19
Реализовать перебор всех возможных IP-адресов (С++) ak74m Помощь студентам 0 09.04.2009 13:59
Как получить список всех своих ip адресов now9009 Работа с сетью в Delphi 1 18.03.2009 05:40