function Pars(const T_, Text, _T : string;Var CurPos:Integer): string;
var
a:integer;
begin
Result := '';
if (T_='') or (Text='') or (_T='') then Exit;
a:=posEx(T_, Text,CurPos);
if a=0 then exit;
CurPos:=posEx(_T,Text,a+Length(T_));
if CurPos=0 then Exit;
Result:=Copy(Text, a+Length(T_), CurPos-a-Length(T_));
CurPos:=CurPos+Length(_T);
end;
Парсинг:
Код:
CurPos:=1;
for k := 0 to 10 do begin
author:= Pars('"artist":"',StrPage,'",',CurPos);
title:= Pars('"title":"',StrPage,'",',CurPos);
mTime:= Pars('"duration":',StrPage,',"',CurPos);
mUrl:= Pars('"url":"',StrPage,'",',CurPos);
if mTime <> '' then
mTime:= IntToStr(Trunc(StrToInt(mTime) / 60)) + ':' + Two(StrToInt(mTime) mod 60);
Item := Form1.sListView1.Items.Add;
Item.Caption := author;
Item.SubItems.Add(title);
Item.SubItems.Add(mTime);
Работаю с ВКонтакте (API). Выдираю название, автора, время и ссылку на песни.
Так вот, возникает так проблема, если выдираю более 3 элементов (название, автора, время, и т.д), то парсится всего 5 песен (Именно 5), при это все в разнобой (автор один, название другое).
[Ссылки могут видеть только зарегистрированные пользователи. ]
Если же выдираю только 3 и меньше элементов, то все хорошо, песен столько, сколько укажу и все на своем месте. В чем может быть проблема?
Последний раз редактировалось Erstown; 23.03.2014 в 15:07.