Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > Получение ЛС из vkontakte.ru


Автор: SANCHO123 21.2.2010, 16:57
Доброго времени суток!

Как можно получить список личных сообщений(всех или хотя бы непрочитанных) из сайта vkontakte.ru в массив записей 

Код

messag: array of record m_id: string;
  From: string;
  data: string;
  Subject: string;
  Body: string;
end;


На сайте авторизовался.

Код

...
param := TStringList.Create;
    param.Add('u=1');
    param.Add('success_url=');
    param.Add('fail_url=');
    param.Add('try_to_login=1');
    param.Add('email=' + Edit2.Text);
    param.Add('pass=' + Edit3.Text);
    try
      IdHTTP1.Post('http://vkontakte.ru/login.php?', param);
    except
      ShowMessage('Сервер недоступен :(');
    end;


Пробовал так:

Код

s:=IdHTTP.get('http://vkontakte.ru/mail.php?id=XXXXXX#filter=all&out=0&st='+inttostr(i)); //i=0,20,40...


А потом вырезать из s (string). Но так слишком долго. 


Автор: Proxin 1.3.2010, 23:49
используй регекспы.

Автор: ange007 2.3.2010, 19:45
А почему слишком долго то!?
Вот где-то примерно так.
 
Код

while Pos('начало блока', text) > 0 do
  begin
    block := copy(text,Pos('начало блока',text),Pos('конец блока',text));

  From := copy(block,'','');
  data := copy(block,'','');
  Subject := copy(block,'','');
  Body := copy(block,'','');

    if Pos('конец блока', text) > 0 then
    begin
      Delete(text, 1, Pos('конец блока', text));
    end
    else
      break;
  end;

Автор: Proxin 2.3.2010, 20:29
щито такое начало блока и конец блока? и почему такой странный вызов copy?

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