ссылка в Delphi 7

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by sidapas23, 17 Feb 2011.

  1. sidapas23

    sidapas23 New Member

    Joined:
    13 Nov 2010
    Messages:
    88
    Likes Received:
    2
    Reputations:
    -3
    Привет нужна помощь на одной странице имеется ссылка нужно чтобы при нажатии на кнопку эта ссылка появлялась в Edit1
    Вот HTML код
    <html xmlns="http://www.w3.org/1999/xhtml">

    <head>
    <title>I-URL - сервис сокращения ссылок</title>
    </head>

    <body bgcolor="black" style="color: white; text-align: center; margin: 50px 50px 50px 50px">
    <font size="12">I-URL</font><br/>
    <big>Сервис сокращения ссылок</big>
    <br/><br/><br/>

    <big><font color="red">
    Ваша ссылка: <br/><b>http://i-url.ru/25</b></font></big> <br/><br/><br/>
    <small>(c) <a href="http://identsoft.org">IDENT Software</a></small>
    </body>
    Вот ссылка которую надо вытащить http://i-url.ru/25
     
  2. arnis

    arnis Member

    Joined:
    30 Jan 2011
    Messages:
    280
    Likes Received:
    23
    Reputations:
    0
    В данном случае можно так:

    S:= код страницы сюда

    delete(s,1,AnsiPos('Ваша ссылка',s));
    delete(s,1,Ansipos('http',s));
    delete(s,AnsiPos('<',s),length(s));
    edit1.text:=s;
     
  3. sidapas23

    sidapas23 New Member

    Joined:
    13 Nov 2010
    Messages:
    88
    Likes Received:
    2
    Reputations:
    -3
    я что то недопонимаю вот мои наброски

    procedure TForm1.Button2Click(Sender: TObject);
    var
    i:integer;
    s:string;
    html_tag: variant;
    begin
    html_tag:=WebBrowser1.OleObject.Document.forms.item(0).elements;
    for i:=0 to (html_tag.length-1) do
    begin
    if (html_tag.item(i).name='url') then
    html_tag.item(i).value:=edit1.Text;

    if (html_tag.item(i).value=' Получить короткую ссылку! ') then
    html_tag.item(i).click;


    end;

    end;
    Надо после нажатия ссылка выявлялась в Edit2 использую WebBrowser1
     
  4. arnis

    arnis Member

    Joined:
    30 Jan 2011
    Messages:
    280
    Likes Received:
    23
    Reputations:
    0
    Уважаемый Вы извращенец

    Получайте любым способом код страницы в переменную и используйте тот код который я вам дал, зпмените только edit1 на edit2
     
  5. sidapas23

    sidapas23 New Member

    Joined:
    13 Nov 2010
    Messages:
    88
    Likes Received:
    2
    Reputations:
    -3
    Сам ты извращенец!
    Я такой код пробовал не сработало мне нужен другой код
    И переменная типа интеджер или стринг?
     
  6. slesh

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

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    Вообще нафига стока мучений. если линк к веббраузере, то юзай его COM. и перечисляй линки на странице.
    Code:
    var
       i: Integer;
     begin
       for i := 0 to Webbrowser1.OleObject.Document.links.Length - 1 do
         memo1.Lines.Add(Webbrowser1.OleObject.Document.Links.Item(i));
    
    из них найдешь свою
     
    #6 slesh, 17 Feb 2011
    Last edited: 17 Feb 2011
  7. patcher

    patcher Banned

    Joined:
    15 Dec 2009
    Messages:
    190
    Likes Received:
    37
    Reputations:
    10
    Работать приведеный выше код и небудет, поскольку ТС не уточнил, что сайт возвращает страницу в UTF-8. вобщем ТС, решил не мучать твою детскую психику - держи функцию для получения сокращенной ссылки:
    Code:
    function GetShortURL(LongURL:string):string;
    var http:TIdHTTP; PostData:TStringList; s:string;
    begin
    PostData:=TStringList.Create;
    PostData.Add('url='+LongURL);
    PostData.Add('ok=Ïîëó÷èòü êîðîòêóþ ññûëêó!');
    http:=TIdHTTP.Create(nil);
    s:=http.Post('http://i-url.ru/', PostData);
    PostData.Free;
    http.Free;
    delete(s, 1, pos(AnsiToUTF8('Âàøà ññûëêà: <br/><b>'), s)+length(AnsiToUTF8('Âàøà ññûëêà: <br/><b>'))-1);
    result:=copy(s, 1, pos('</b>', s)-1);
    end;
    
    пример использования:
    Code:
    Edit2.Text:=GetShortURL('http://mysite.com/index.php?do=adsad&dasd=fsd');
    
    P.S. в USES добавь
    Code:
    IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,IdHTTP
    
     
  8. sidapas23

    sidapas23 New Member

    Joined:
    13 Nov 2010
    Messages:
    88
    Likes Received:
    2
    Reputations:
    -3
    до фига ощибок выдает я программирую на делфи 7
     
  9. sidapas23

    sidapas23 New Member

    Joined:
    13 Nov 2010
    Messages:
    88
    Likes Received:
    2
    Reputations:
    -3
    а ты просто кодировку не учел
     
  10. patcher

    patcher Banned

    Joined:
    15 Dec 2009
    Messages:
    190
    Likes Received:
    37
    Reputations:
    10
    бля, из Делфей копипастил код, как всегда "погрыз", сцук :( но я думаю ход мыслей понятен ;)
     
  11. sidapas23

    sidapas23 New Member

    Joined:
    13 Nov 2010
    Messages:
    88
    Likes Received:
    2
    Reputations:
    -3
    мысли понятны вот только в едит2 не выводит ссылку