Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   [Delphi]Помогите проанализировать код (https://forum.antichat.xyz/showthread.php?t=155193)

marcos 09.11.2009 16:20

[Delphi]Помогите проанализировать код
 
Всем привет попогите проанализировать код. Пытался сам-не получилось :mad: Я его испытал-он выводит одни и те жи мыльники (через каждые 20).
Что нужно изменить, чтобы мыльников была куча и чтобы они были все разные?

Код:

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.

Буду признателен за помощь!

0rs 09.11.2009 17:29

Если на странице ссылок будет меньше 46 то будет одна и та же страница загружаться.
Посмотри чему равен n в отладчике.
И скорее всего нужен не текст ссылки а сама ссылка WebBrowser.OleObject.Document.Links.Item(x).href

marcos 09.11.2009 19:15

А можно сделать например чтобы:
Открываешь ссылку друзья друзей, и он всех этих друзей друзей перебирает? И если да то как?


Время: 02:08