Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Парсинг строк


Автор: Anakin 18.10.2011, 14:23
Добрый день.
Начал осваивать парсинг html
и возник вопрос.
Значит делаю авторизацию на сайте
Получаю данные запросом Get

теперь нужно данные пропарсить, нашел код на форуме но что то я не понимаю его.
Если можно кто то распишите действие кода что бы мне в дальнейшем было понятно.
Я понимаю вопрос возможно туповат но уж какой есть.
Заранее Огромное спасибо.

Код

St:=frmMain.HTTP.Get('http://www.tutsait.ru/browse.php');
Delete(St,1,pos('<font color=#770000>',St)+length('<font color=#770000>')-1);
Delete(St,pos('</font>',St),length(St));


Вот это понятно:
Код

St:=frmMain.HTTP.Get('http://www.tutsait.ru/browse.php');

Берём данные с сайта

Но вот не могу понять дальше 2 строки которые делаю поиск в полученом результате и присваивают его переменной St

Если можно распишите пошагаво.

Автор: Keeper89 18.10.2011, 15:57
Описать что делает функция удаления в строке?
Если что происходит по смыслу, то код бредовый.

Добавлено через 1 минуту и 47 секунд
А что вообще надо сделать? 

Автор: Anakin 18.10.2011, 16:39
Я захожу на Торрент сайт и надо забрать от туда инфу о данных пользователя типа: Рацио,Отдано,Скачано и новые поступления торрентов.
Это программа которая отслеживает новые поступление на торренте и оповещает о том что есть новые поступления.
Так вот я сделал это путём копирования и подставления своих данных, но я не понял как код работает,а я проста хочу понять как он работает.

Код

Procedure TfrmLogin.Ratio;
var
St:WideString;
begin
try
St:=frmMain.HTTP.Get('http://www.torrentsmd.eu/');
Delete(St,1,pos('<font color=#770000>',St)+length('<font color=#770000>')-1);
Delete(St,pos('</font>',St),length(St));
//ShowMessage(St);
frmMain.lbl_ratio.Caption:=(St);
except
on e:Exception do
end;


Тоесть мне надо расшифровать вот эти две строки:
Код

Delete(St,1,pos('<font color=#770000>',St)+length('<font color=#770000>')-1);
Delete(St,pos('</font>',St),length(St));

Автор: MacTep 24.10.2011, 00:07
Во-первых, зря тема находится в разделе "Сети". Тут ничего такого по сетям абсолютно.
Во-вторых, что делают функции delete и pos можно узнать погуглив немного (например, вот тут почитать http://www.delphibasics.ru/Pos.php, http://www.delphibasics.ru/Delete.php).
В-третьих, видимо у автора чужой код и он пытается в нем разобраться. А по незнанию, очень слабо это получается smile) Я так понял, что в строке обрезаются теги форматирования, чтобы осталась только сама смысловая часть текста, а тэгов не было бы.

Автор: Данкинг 24.10.2011, 00:36
Цитата(MacTep @  24.10.2011,  01:07 Найти цитируемый пост)
Я так понял, что в строке обрезаются теги форматирования

Если так, то не проще StringReplace использовать? smile 

Автор: MetalFan 26.10.2011, 13:51
Цитата(Данкинг @  24.10.2011,  00:36 Найти цитируемый пост)
то не проще StringReplace использовать?

Или http://forum.vingrad.ru/articles/topic-213075.html)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)