回 帖 发 新 帖 刷新版面

主题:如何将网页的数据转换成 .TXT 文件?

我想将下页的数据转换成文本文件:
http://www.gdfc.org.cn/Lottery/ComputerLottery/threed_history.html

转换后的格式如下:
2006187.410
2006186.215
2006185.596
2006184.608
2006183.553
2006182.949
2006181.708
2006180.207
......

请问如何编写程序? 要用到哪些控件?

回复列表 (共5个回复)

沙发

可以用webbrowser控件,的document对象。

板凳

不会,能举个例吗?

3 楼

form上放Twebbrowser控件webbrowser1,然后在某个事件中定义webbrowser1.navigate('指定的网页');
最后,用以下我给你的函数,把webbrowser上显示的网页html文本全部读入一个字符串xstr:=gethtml(webbrowser1);

以下是函数:
function GetHtml(const WebBrowser:TWebBrowser): string;
const
BufSize = $10000;
var
Size: Int64;
Stream: IStream;
hHTMLText: HGLOBAL;
psi: IPersistStreamInit;
begin
  if not Assigned(WebBrowser.Document) then Exit;
  OleCheck(WebBrowser.Document.QueryInterface(IPersistStreamInit, psi));
  try
    //OleCheck(psi.GetSizeMax(Size));
    hHTMLText := GlobalAlloc(GPTR, BufSize);
    if 0 = hHTMLText then RaiseLastWin32Error;
    OleCheck(CreateStreamOnHGlobal(hHTMLText,True, Stream));
    try
    OleCheck(psi.Save(Stream, False));
    Size := StrLen(PChar(hHTMLText));
    SetLength(Result, Size);
    CopyMemory(PChar(Result), Pointer(hHTMLText),Size);
    finally
    Stream := nil;
    end;
  finally
  psi := nil;
  end;
end;

当然,要想实现你显示的格式,最好还要再设计一下网页的输出格式。

4 楼

续:
把从gethtml()得来的字符串,经处理后,即可存为一个txt文件。

如果网页输出格式设计得好,字符串的处理很简单。否则,需要结合一些特殊字符来截取你想要的字符串

5 楼

OH!,多谢.我用idhttp.get('URL')得到了网页的源文件,然后POS定位得到了想要的字符.
不过有个问题,就是如何快速定位下一个特定字符串? 我现在用的是数字节的方法.

我来回复

您尚未登录,请登录后再回复。点此登录或注册