2012-10-08 84 views
0

讓我們看看偏航能幫助我在這裏,德爾福7 - 從網站獲取值

假設有一個鏈接:www.example.com/test.html

在打開,它會顯示無論是0或1.

我需要獲取該值。 I.e .:

if internet.value := 0 then ShowMessage('False') else ShowMessage('True'); 

它可能是使用indy組件或winsockets,我會怎麼去做這個?

+2

請添加你迄今所做的什麼,在哪裏,你所面臨的問題的詳細信息。本網站可幫助您編寫代碼,而不是爲您提供完整的代碼。 –

+0

http://stackoverflow.com/search?q=%5Bdelphi%5D+download+http&submit=search –

+0

http://stackoverflow.com/search?q=%5Bdelphi%5D+parse+html&submit=search - 此疑難解答包含兩個問題。他們都在SO –

回答

3

如果你正在談論一個只包含整數值的純文本文件,你可以使用Indy來處理這個例如這條路。當頁面下載成功並且頁面包含整數值時,以下函數返回True,否則返回False。請注意,我寫它在瀏覽器,它是未經測試:

uses 
    IdHTTP; 

function TryWebContentToInt(const AURL: string; out AValue: Integer): Boolean; 
var 
    S: string; 
    IdHTTP: TIdHTTP; 
begin 
    IdHTTP := TIdHTTP.Create(nil); 
    try 
    IdHTTP.HandleRedirects := True; 
    try 
     S := IdHTTP.Get(AURL); 
     Result := TryStrToInt(S, AValue); 
    except 
     Result := False; 
    end;  
    finally 
    IdHTTP.Free; 
    end; 
end; 

和使用:

procedure TForm1.Button1Click(Sender: TObject); 
var 
    I: Integer; 
begin 
    if TryWebContentToInt('http://example.com/page.html', I) then 
    ShowMessage('Value: ' + IntToStr(I)) 
    else 
    ShowMessage('Page downloading failed or it doesn''t contain an integer value!'); 
end; 
+1

這是現貨,我印象深刻。謝謝你的片段。 – user1727909