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 导入类型库,并且只有 CoXMLHTTP40CoXMLHTTP60 类。没有CoXMLHTTP。还有XMLHTTP这个界面看起来很奇怪,不应该是I开头的吗? 像这样的细节在 Windows 和 Delphi 版本之间可能确实会发生一些变化。 “OLE 类”XMLHTTP 不以 I 开头,该类中的对象“公开” IXMLHTTPRequest 接口,也许还有其他接口。类似,源于古老的 COM/OLE 理论,在实践中你会发现在 TLB 单元中它们是等价的,可以互换使用。

以上是关于Delphi:如何将互联网上的文本文件加载到字符串中?的主要内容,如果未能解决你的问题,请参考以下文章

delphi将文本输入到txt文件里面

DELPHI 如何打开和 保存 TREEVIEW 的状态

delphi 如何分割文本

将 Delphi BDE Paradox *.db 查询结果导出到文本文件?

delphi 写入到txt的问题

如何在 Visual Basic 6.0 中创建带有文本框的数组