主题:如何将网页的数据转换成 .TXT 文件?
ooooh
[专家分:60] 发布于 2006-07-14 23:27:00
我想将下页的数据转换成文本文件:
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个回复)
沙发
长尾兔 [专家分:3630] 发布于 2006-07-15 17:07:00
可以用webbrowser控件,的document对象。
板凳
ooooh [专家分:60] 发布于 2006-07-16 00:25:00
不会,能举个例吗?
3 楼
长尾兔 [专家分:3630] 发布于 2006-07-17 15:47:00
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 楼
长尾兔 [专家分:3630] 发布于 2006-07-17 15:50:00
续:
把从gethtml()得来的字符串,经处理后,即可存为一个txt文件。
如果网页输出格式设计得好,字符串的处理很简单。否则,需要结合一些特殊字符来截取你想要的字符串
5 楼
ooooh [专家分:60] 发布于 2006-07-17 23:38:00
OH!,多谢.我用idhttp.get('URL')得到了网页的源文件,然后POS定位得到了想要的字符.
不过有个问题,就是如何快速定位下一个特定字符串? 我现在用的是数字节的方法.
我来回复