Delphi:如何将互联网上的文本文件加载到字符串中?
Posted
技术标签:
【中文标题】Delphi:如何将互联网上的文本文件加载到字符串中?【英文标题】:Delphi: How to load a text file on the internet into a string? 【发布时间】:2012-06-26 16:03:33 【问题描述】:在我的程序中,我有一个函数可以检查程序的当前版本,它从 url 获取:www.tablemaster.webs.com/versioninfo.txt
如您所见,在 URL 处只是纯文本。我需要将此文本从 URL 加载到我的程序上的字符串中,我将如何执行此操作?我四处寻找,但一无所获..
PS:我需要尽可能简单的代码..
提前致谢:)
【问题讨论】:
这几乎可以肯定是重复的。 首先展示如何从 URL 获取文本会有所帮助,这样我们就知道从哪里开始了;它可以帮助你到达你要去的地方。 :-) delphi 7 http request into string 的可能重复项 这里接受的答案有功能 WebGetData 似乎很合适:***.com/questions/2977720/… 【参考方案1】:我会使用 Indy 的 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;
【讨论】:
很高兴有一个新的个人匿名投反对票;我已经失去了一个很长时间了:-) upboat por vous,反击。 谢谢,我知道这已经晚了,但这是我最终使用的代码方法。【参考方案2】:您可以使用 myfxboard 中的 TIEHTTP 组件。 使用 TIEHTTP 从 url 加载 txt 文件:
http.ExecuteURL('www.tablemaster.webs.com/versioninfo.txt');
Memo1.Lines.Add(http.sl.Text);
【讨论】:
【参考方案3】:我会使用 MSXML2_TLB,特别是如果我已经在项目中使用了 XML。 MSXML2 从 Internet Explorer 5.5 版本开始出现在 Windows 中,因此很有可能它出现在系统上。您可以使用主菜单中的 Import Type Library 选项获取 MSXML2_TLB.pas,然后从列表中选择“Microsoft XML, v6.0”(或更高版本)。
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;
【讨论】:
虽然很有趣,但我尝试在 Windows 7 上使用 Delphi 2009 导入类型库,并且只有CoXMLHTTP40
或 CoXMLHTTP60
类。没有CoXMLHTTP
。还有XMLHTTP
这个界面看起来很奇怪,不应该是I
开头的吗?
像这样的细节在 Windows 和 Delphi 版本之间可能确实会发生一些变化。 “OLE 类”XMLHTTP 不以 I 开头,该类中的对象“公开” IXMLHTTPRequest 接口,也许还有其他接口。类似,源于古老的 COM/OLE 理论,在实践中你会发现在 TLB 单元中它们是等价的,可以互换使用。以上是关于Delphi:如何将互联网上的文本文件加载到字符串中?的主要内容,如果未能解决你的问题,请参考以下文章