Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.12.26;
Скачать: CL | DM;

Вниз

idhttp   Найти похожие ветки 

 
Рома   (2010-09-30 14:02) [0]

всем привет. Ух постараюсь объяснить, что я хочу сделать.
есть едит1, мемо1, и кнопка баттон1. В едит 1 мы пишем что хотим найти, нажимаем на кнопку и в мемо 1 выписываются только ссылки в столбик найденные на яндекс. Так вот у меня почему то выписываються пустые столбики, а почему я не могу понять, где у меня ошибка?

procedure TForm1.Button1Click(Sender: TObject);
var ssilka,text: string;
info: array [0..9] of string;
p,a,b: integer;
begin
text:=edit1.Text;
//Тут мы заменяем в поиске пробел на +
repeat
if pos(" ",text)<>0 then
text[pos(" ",text)]:="+";
until (pos(" ",text)=0);

//10 страниц яндекса
for  p:=0  to 9 do
begin
ssilka:="http://yandex.ru/yandsearch?p="+inttostr(p)+"&text="+text+"&lr=47";
info[p]:=idhttp1.Get(ssilka);
//Позиция начала ссылки
a:=pos("<a class="agp" tabindex="2" href="",info[p])+34;
//Позиция конца ссылки
b:=pos("" onmousedown="rc",info[p]);
//Обрезаем чтоб осталась только ссылка
memo1.Lines.Add(copy(info[p], a, b-a));
end;
end;
end.


 
Сергей М. ©   (2010-09-30 14:07) [1]

idhttp-то тут причем ?

По-твоему он что ли виноват в том что у тебя какие-то там столбики писаються неправильно ?


 
Рома   (2010-09-30 14:10) [2]

Да я знаю что не причем. Просто создал тему с наз-ем idhttp1, т.к. построена программа на этой функции.


 
oldman ©   (2010-09-30 14:11) [3]


> memo1.Lines.Add(copy(info[p], a, b-a));


А поставить точку останова и убедится в том, что a=b=0 религия запрещает?


 
Сергей М. ©   (2010-09-30 14:19) [4]


> создал тему с наз-ем idhttp1, т.к. построена программа на
> этой функции


Гениальная логика)
А почему бы тогда не обозвать тему "Pos" ? Программа же построена в т.ч. и на этой функции)
Более того, открою страшную тайну  - проблема стоит за работой именно этой функции).. так что см.[3]


 
Рома   (2010-09-30 14:24) [5]

Дело в том, что даже если сделать вот так

a:=pos("<a class="agp" tabindex="2" href="",info[p])+34;
memo1.Lines.Add(copy(info[p], a, 10));

По смыслу мы выводим с позиции "а" первых 10 символов, но он выводит вообще фигню. Получается не правильно работает info[p]:=idhttp1.Get(ssilka); ссылка генерируется правильно.


 
Рома   (2010-09-30 14:26) [6]

Сергей М а как тогда мне надо было назвать тему? Помогите? Не работает? или еще как нибудь


 
И. Павел ©   (2010-09-30 14:31) [7]

> а как тогда мне надо было назвать тему

- Вывод ссылок, найденных в яндексе, в memo.

Почему не проверяете результат функции pos? Она же может и не найти нужные вхождения.


 
muinmy ©   (2010-09-30 14:45) [8]

И. Павел
скорее всего так оно и есть.
Я сделал вот так, зашел на яндекс написал в поиске 1
получил ссылку http://yandex.ru/yandsearch?text=1&lr=47, перешел на вторую страницу и получил http://yandex.ru/yandsearch?p=1&text=1&lr=47
сделал переменную p = 1 чтоб тоже открывал только вторую страницу
получилось  http://yandex.ru/yandsearch?p=1&text=1&lr=47, получается ссылки одинаковые, но когда вывел info[p]:=idhttp1.Get(ssilka) в мемо, исходные коды у них почему то разные


 
И. Павел ©   (2010-09-30 14:55) [9]

> [8] muinmy ©   (30.09.10 14:45)

Например могло передаться время. Или что-то незначительно изменилось. Я загрузил страницу http://yandex.ru/yandsearch?p=1&text=1&lr=47
дважды в браузере - во второй раз около одной найденной ссылки появилась какая-то надпись "Санкт-Петербург" - страницы то не статические, а формируются каждый раз заново.


 
Сергей М. ©   (2010-09-30 14:56) [10]

Браузер-то не рвет соединение с сервером при переходе между страницами..
А idhttp у автора законнектился. получил контент одной страницы и отключился..


 
muinmy ©   (2010-09-30 15:06) [11]

Дело в том, что если даже перейти http://yandex.ru/yandsearch?p=1&text=1&lr=47 несколько раз, формируются ссылки перед которыми присутствуют <a class="agp" tabindex="2" href=", а в idhttp1.Get нет.


 
Anatoly Podgoretsky ©   (2010-09-30 15:23) [12]


> Сергей М. ©   (30.09.10 14:19) [4]

Ты не прав, в коде используются переменная А, вот так и надо называть тему, чтобы нам было понятно. А



Страницы: 1 вся ветка

Текущий архив: 2010.12.26;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.01 c
2-1285851032
coder123
2010-09-30 16:50
2010.12.26
Как найти открытую форму по типу и по части названия?


15-1284462862
{RASkov}
2010-09-14 15:14
2010.12.26
USB Flash не устанавливаются ОСью как положено


2-1285609884
menart
2010-09-27 21:51
2010.12.26
TImage


15-1284628580
oldman
2010-09-16 13:16
2010.12.26
Диаграмма Вороного (разбиение Дирихле)


2-1285973896
Ghost del vonte
2010-10-02 02:58
2010.12.26
Графика