Delphi 7 как загрузить аватар из Контакта в TImage?

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Alex_g, 7 Sep 2010.

  1. Alex_g

    Alex_g New Member

    Joined:
    13 Jul 2010
    Messages:
    11
    Likes Received:
    0
    Reputations:
    0
    Ребята, помогите с кодом. Нужно загрузить в TImage аватар из определенной странице "Вконтакте". При этом чтоб не нужно было логиниться. Также чтоб из этой страницы можно было получить Имя, Ник и Фамилию.
    Заранее спасибо....
     
  2. Boolean

    Boolean Elder - Старейшина

    Joined:
    5 Sep 2010
    Messages:
    147
    Likes Received:
    83
    Reputations:
    78
    vkontakte api
    http://grabberz.com/showthread.php?t=24607
     
  3. Artist

    Artist Member

    Joined:
    10 Jul 2010
    Messages:
    89
    Likes Received:
    5
    Reputations:
    0
    Код для загрузки изображения в Timage.
    Code:
    uses
    .., IdHttp, Jpeg;
    
    var
    Jpg : TJpegImage;
    MS  : TMemoryStream;
    http: TIdHTTP;
    begin
    Ms  := TMemoryStream.Create;
    Jpg := TJpegImage.Create;
    http:=TIdHTTP.Create(nil);
    http.Get('Ссылка на аватар который хочешь скачать', Ms);
    http.Free;
    Ms.Position := 0;
    Jpg.LoadFromStream(ms);
    Form1.Image1.Picture.Graphic := Jpg;
    end;
    
    а Имя, Ник и Фамилию нужно спарсить со страницы.
     
    #3 Artist, 7 Sep 2010
    Last edited: 7 Sep 2010
  4. Alex_g

    Alex_g New Member

    Joined:
    13 Jul 2010
    Messages:
    11
    Likes Received:
    0
    Reputations:
    0
    спасибо, уже разбираюсь....
     
  5. Alex_g

    Alex_g New Member

    Joined:
    13 Jul 2010
    Messages:
    11
    Likes Received:
    0
    Reputations:
    0
    спасибо , попробую разобраться....
     
  6. ilyhamas

    ilyhamas Banned

    Joined:
    25 Oct 2009
    Messages:
    48
    Likes Received:
    2
    Reputations:
    0
    Получение авы

    Code:
    For I := 0 to Page.Count -1 do
      begin
           if Pos('<div id="profilePhoto"', page[i]) <> 0 then
        begin
          url := page[i +1];
          url := Copy(url, Pos('http://', url), Length(url));
          Delete(url, Pos('/>', url), Length(url));
    Вывод в Image1
    Code:
    Img := TJpegImage.Create;
    Ms := TMemoryStream.Create;
    idhttp1.Get(url, ms);
    Ms.Position := 0;
    img.LoadFromStream(ms);
    Image1.Picture.Graphic := img;
     
  7. Alex_g

    Alex_g New Member

    Joined:
    13 Jul 2010
    Messages:
    11
    Likes Received:
    0
    Reputations:
    0
    можно подробнее , что за Page.Count не пойму, откуда его брать?
     
  8. Chrome~

    Chrome~ Elder - Старейшина

    Joined:
    13 Dec 2008
    Messages:
    936
    Likes Received:
    162
    Reputations:
    27
    Page - это вроде как TStringList.

    Когда получаешь страницу с помощью idHTTP, то сохраняешь данные в объект типа TStringList, в данном случае. В цикле выше происходит поиск нужных данных, Page.Count - количество строк в теле загружаемой страницы.
     
  9. Alex_g

    Alex_g New Member

    Joined:
    13 Jul 2010
    Messages:
    11
    Likes Received:
    0
    Reputations:
    0
    РазобралсО... всем спасибо за помощь....!!!!!!

    удалось получить аватар изменив немного выше приведенный код на:

    Code:
    For I := 0 to Page.Count -1 do
      begin
           if Pos('<div id="profileContent"', page[i]) <> 0 then
        begin
          url := page[i +4];
          url := Copy(url, Pos('http://', url), Length(url));
          Delete(url, Pos('/>', url), Length(url));
        end;
      end;