Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2010.12.26;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.003 c
2-1285839434
mefodiy
2010-09-30 13:37
2010.12.26
QuickReport с юникодом для Delphi 7


2-1285874599
faiwer
2010-09-30 23:23
2010.12.26
Главная форма и модальные окна


15-1279457604
Владимир
2010-07-18 16:53
2010.12.26
требуется компонент


15-1284537412
12
2010-09-15 11:56
2010.12.26
MSSQL. OPENQUERY. Как linked_server := self ?


15-1284634047
Kerk
2010-09-16 14:47
2010.12.26
Обладателям девайсов на Android





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