Lazarus中文社区

 找回密码
 立即注册(注册审核可向QQ群索取)

QQ登录

只需一步,快速开始

Lazarus IDE and 组件 下载地址版权申明
查看: 4552|回复: 2

读取网页内容

[复制链接]

该用户从未签到

发表于 2009-12-27 22:00:31 | 显示全部楼层 |阅读模式
这本来不是我的本意,原本想通过通过读取网上的XML文件,来获取数据库服务器地址和端口号,以提供应用程序数据的连接。可惜的是不知道如何读取:
TXMLDocument中没有loadformfile方法;
想借助IdHTTP的GET方法读取,但读取过来的是整个包含标签在内的XML文档。

网上搜索了一下,借鉴了别人的方法,干脆直接读取网页的内容来实现,下面将方法写下来,留给后来者:

1、托一个TIdHTTP控件到窗体中(得安装indy for lazarus)和一个Memo控件(用于显示读取到得数据);

2、网上上传一个测试网页,网页全部代码如下:
       <host>127.0.0.1</host>
       <port>3306</port>
      
3、声明一个函数:
       function GetStr(StrSource,StrBegin,StrEnd:string):string;
      并定义如下(代码来自网上):
       function GetStr(StrSource,StrBegin,StrEnd:string):string;
       var
          in_star,in_end:integer;
      begin
        in_star:=AnsiPos(strbegin,strsource)+length(strbegin);
        in_end:=AnsiPos(strend,strsource);
        result:=copy(strsource,in_star,in_end-in_star);
     end;

4、在对应的事件中添加代码:
      var
       strSource:string;
     begin
       strsource:=IdHTTP1.Get('http://*****.com.cn/epicard/1.htm');
       memo1.Lines.Add(getstr(strsource,'<host>','</host>'));
       memo1.Lines.Add(getstr(strsource,'<port>','</port>'));

5、编译运行后,Memo中显示如下:
       127.0.0.1
       3306

      (感谢群里各位前辈的支持,QQ:460570870)
         
      
        

评分

参与人数 1威望 +10 收起 理由
猫工 + 10 优秀文章

查看全部评分

回复

使用道具 举报

该用户从未签到

发表于 2009-12-28 09:06:57 | 显示全部楼层
好样的,聚沙成塔
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2010-1-7 09:45:38 | 显示全部楼层
我在用LNet,只是不能支持proxy,其他都好
回复 支持 反对

使用道具 举报

*滑块验证:

本版积分规则

QQ|手机版|小黑屋|Lazarus中国|Lazarus中文社区 ( 鄂ICP备16006501号-1 )

GMT+8, 2025-5-2 23:02 , Processed in 0.027446 second(s), 11 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表