2012-06-26 6 views
4

내 프로그램에는 URL에서 가져 오는 프로그램의 현재 버전을 확인하는 기능이 있습니다. www.tablemaster.webs.com/versioninfo.txtDelphi : 인터넷에서 텍스트 파일을 문자열로로드하는 방법은 무엇입니까?

자세히 알 수 있듯이 URL은 다음과 같습니다. 그냥 일반 텍스트. URL에서이 텍스트를 내 프로그램의 문자열로로드해야합니다. 어떻게해야합니까? 나는 주위를 수색했지만 아무것도 발견했습니다 ..

PS를 : 나는 가능한 한 간단한 코드가 필요합니다 .. 사전 :

+3

이 거의 확실 중복입니다. –

+0

처음부터 URL에서 텍스트를 가져 오는 방법을 보여 주면 우리가 어디에서 시작하는지 알 수 있습니다. 그것은 당신이가는 곳을 얻을 수 있도록 도와줍니다. :-) –

+1

가능한 [델파이 7 http 요청 문자열로] (http://stackoverflow.com/questions/4092209/delphi-7-http-request-into-string) –

답변

23

내가 사용하는 것에

감사 인디의 TIdHTTP 그것의 가장 쉬운 이런 식으로 과부하 GET :

uses 
    IdHTTP; 

procedure TForm1.Button1Click(Sender: TObject); 
var 
    S: string; 
    IdHTTP: TIdHTTP; 
begin 
    IdHTTP := TIdHTTP.Create(nil); 
    try 
    S := IdHTTP.Get('http://www.tablemaster.webs.com/versioninfo.txt'); 
    ShowMessage(S); 
    finally 
    IdHTTP.Free; 
    end; 
end; 
+0

새 개인 익명 downvoter을 가지고 좋은; 내가 길을 잃은 것은 오랜 시간이었습니다 :-) – TLama

+1

upboat por vous, 그것을 막기 위해서. –

+0

고마워, 나는 이것이 늦었다는 것을 알고있다. 그러나 이것은 내가 결국 사용했던 코드 접근법이다. – James

1

MSXML2_TLB를 사용합니다. 특히 이미 프로젝트에서 XML을 사용하고 있습니다. MSXML2는 Internet Explorer 5.5 버전 이후 Windows에 제공되므로 시스템에 실제로 존재할 가능성이 있습니다. 주 메뉴에서 유형 라이브러리 가져 오기 옵션을 사용하고 목록에서 "Microsoft XML, v6.0"이상을 선택하여 MSXML2_TLB.pas를 가져올 수 있습니다.

var 
    r:XMLHTTP; 
begin 
    r:=CoXMLHTTP.Create; 
    r.open('GET','http://www.tablemaster.webs.com/versioninfo.txt','',''); 
    r.send(EmptyParam); 
    if r.status<>200 then raise Exception.Create(IntToStr(r.status)+' '+r.statusText); 
    Result:=r.responseText; 
end; 
+0

흥미로운 대안이지만, 델파이 2009와 함께 윈도우 7에서 타입 라이브러리를 가져 오려고 시도했으며 오직'CoXMLHTTP40' 또는'CoXMLHTTP60' 클래스 만 있습니다. 'CoXMLHTTP'는 없습니다. 또한'XMLHTTP' 인터페이스는 꽤 이상하게 보입니다.'I'로 시작하지 않아야합니까? – TLama

+0

이와 같은 세부 사항은 실제로 Windows와 Delphi 버전간에 약간 변경 될 수 있습니다. 'OLE 클래스'XMLHTTP는 I로 시작하지 않으며, 해당 클래스의 객체는 IXMLHTTPRequest 인터페이스와 기타 객체를 '노출'합니다. 그것은 유사하고 앤티크 COM/OLE 이론에서 유래합니다. 실제로는 TLB 단위에서 서로 동일하고 상호 교환 가능하게 사용할 수 있습니다. –

2

당신은 TIEHTTP와 URL에서 TXT 파일을로드 .. myfxboard에서 을 TIEHTTP 구성 요소를 사용할 수 있습니다

http.ExecuteURL('www.tablemaster.webs.com/versioninfo.txt'); 
Memo1.Lines.Add(http.sl.Text); 
관련 문제