PDA

Просмотр полной версии : [Подсказка] Одинаковые строчки при парсинге


MastaDan
10.11.2012, 02:14
Всем приветос.
Освоил немного парсинг. С помощию функции
function Pars(T_, ForS, _T: string): string;
var
a, b: integer;
begin
Result := '';
if (T_ = '') or (ForS = '') or (_T = '') then
.............................

Пытаюсь пропарсить текст со страницы, но не получается спарсить то что нужно. Вот пример.


Source_stat:=TStringList.Create;
Source_stat.Text:=Id[Ссылки могут видеть только зарегистрированные и активированные пользователи](Edit1.Text);
.....(''+Pars(';"><td class="myTblTD1" align="left">',Source_stat.Text,'</td><td '));


Все эти строчки повторяются по многу раз в коде страницы, но у каждой результат свой. Как можно прально отсчитать их, что бы спарсить то что нужно?

metraz
10.11.2012, 11:23
Если строчек много, то легче пользоваться регулярными выражениями

MastaDan
10.11.2012, 13:02
мм, да вот регулярки я пока не учил)

VeTaL_UA
10.11.2012, 23:35
А ты удаляй строку с тем, что спарсил и заново парси, примерный код:
var i,j:integer;
...
Source_stat:=TStringList.Create;
Source_stat.Text:=Id[Ссылки могут видеть только зарегистрированные и активированные пользователи](Edit1.Text);
repeat
i:=Pos(';"><td class="myTblTD1" align="left">',Source_stat.Text);
j:=Pos('</td><td ',Source_stat.Text);
.....(''+Pars(';"><td class="myTblTD1" align="left">',Source_stat.Text,'</td><td '));
Delete(Source_stat.Text,i-1,j+9-i);
until (i and j)=0;
...