[Delphi]Помогите проанализировать код

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by marcos, 9 Nov 2009.

  1. marcos

    marcos New Member

    Joined:
    8 Nov 2009
    Messages:
    111
    Likes Received:
    1
    Reputations:
    -5
    Всем привет попогите проанализировать код. Пытался сам-не получилось :mad: Я его испытал-он выводит одни и те жи мыльники (через каждые 20).
    Что нужно изменить, чтобы мыльников была куча и чтобы они были все разные?

    Code:
     unit Unit1;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, OleCtrls, SHDocVw, StdCtrls;
    
    type
      TForm1 = class(TForm)
        WebBrowser1: TWebBrowser;
        Memo1: TMemo;
        Button1: TButton;
        procedure FormCreate(Sender: TObject);
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
    
    var
      Form1: TForm1;
    
    implementation
    
    {$R *.dfm}
    Function After ( Src:string ; Var S:string ) : string ;
    
    Var
    
    F : Word ;
    
    begin
    
    F := POS (Src,S) ;
    
    if F=0 then
    
    After := ''
    
    else
    
    After := COPY(S,F+length(src),length(s)) ;
    
    end ;
    procedure TForm1.FormCreate(Sender: TObject);
    var
    
    Flags: OLEVariant;
    x:word;
    
    s,temp,n: string;
    begin
    
    Flags := 0;
    
    WebBrowser1.Navigate(WideString('http://my.mail.ru'),Flags,Flags,Flags,Flags);
    end;
    
    procedure TForm1.Button1Click(Sender: TObject);
    var
    
    x:word;
    
    s,temp,n: string;
    
    Flags: OLEVariant;
    
    begin
    
    for x:=0 to WebBrowser1.OleObject.Document.Links.Length-1 do
    
    begin
    
    temp:=WebBrowser1.OleObject.Document.Links.Item(x);
    
    s:=After('http://www.mail.ru/agent?message&to=',temp);
    
    if s <>'' then memo1.lines.Add(s);
    
    if x>46 then
    
    begin
    
    if After('http://my.mail.ru/my/classmates',temp)<>'' then n:=temp;
    
    if After('http://my.mail.ru/my/search',temp)<>'' then n:=temp;
    
    if After('http://my.mail.ru/my/neighbour',temp)<>'' then n:=temp;
    
    if After('http://my.mail.ru/my/military_search',temp)<>'' then n:=temp;
    
    end;
    
    end;
    
    Flags := 0;
    
    WebBrowser1.Navigate(WideString(n),Flags,Flags,Flags,Flags);
    
    end;
    
    end.
    
    Буду признателен за помощь!
     
    #1 marcos, 9 Nov 2009
    Last edited by a moderator: 9 Nov 2009
  2. 0rs

    0rs Member

    Joined:
    30 Dec 2008
    Messages:
    70
    Likes Received:
    23
    Reputations:
    3
    Если на странице ссылок будет меньше 46 то будет одна и та же страница загружаться.
    Посмотри чему равен n в отладчике.
    И скорее всего нужен не текст ссылки а сама ссылка WebBrowser.OleObject.Document.Links.Item(x).href
     
    #2 0rs, 9 Nov 2009
    Last edited: 9 Nov 2009
  3. marcos

    marcos New Member

    Joined:
    8 Nov 2009
    Messages:
    111
    Likes Received:
    1
    Reputations:
    -5
    А можно сделать например чтобы:
    Открываешь ссылку друзья друзей, и он всех этих друзей друзей перебирает? И если да то как?