如何读出HTML文件

zcjblueice 2006-07-16 04:57:03
用VS2005做一个pocket pc上的ie,如何读出HTML文件啊,谁有没有现成的例子啊,急需,在线等
...全文
237 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zcjblueice 2006-07-20
  • 打赏
  • 举报
回复
谢谢各位,我仔细看看那段代码吧
FLYDANCER 2006-07-19
  • 打赏
  • 举报
回复
af4fq4fqw3f
FLYDANCER 2006-07-19
  • 打赏
  • 举报
回复
aesfwe
FLYDANCER 2006-07-19
  • 打赏
  • 举报
回复
#include "winsock2.h"
#include "stdio.h"
#include "Wininet.h"
#pragma comment (lib,"Wininet.lib")

void main()
{
FILE *fw;
fw=fopen("log.log","w");

int i,k;

HINTERNET hNet = ::InternetOpen("Google page", //当HTTP协议使用时,这个参数随意赋值
PRE_CONFIG_INTERNET_ACCESS, //访问类型指示Win32网络函数使用登记信息去发现一个服务器。
NULL,
INTERNET_INVALID_PORT_NUMBER, //使用INTERNET_INVALID_PORT_NUMBER相当于提供却省的端口数。
0 //标志去指示使用返回句句柄的将来的Internet函数将"不"为回调函数发送状态信息
) ;

HINTERNET hUrlFile = ::InternetOpenUrl(hNet, //从InternetOpen返回的句柄
"http://", //需要打开的URL
NULL, //用来向服务器传送额外的信息,一般为NULL
0, //用来向服务器传送额外的信息,一般为 0
INTERNET_FLAG_RELOAD, //InternetOpenUrl行为的标志
0) ; //信息将不会被送到状态回调函数

char buffer[1024] ;
char temp_buffer[100];
char ip[16];

int ip_len;
DWORD dwBytesRead = 0;
BOOL bRead = ::InternetReadFile(hUrlFile, //InternetOpenUrl返回的句柄
buffer, //保留数据的缓冲区
sizeof(buffer),
&dwBytesRead); //指向包含读入缓冲区字节数的变量的指针;
//如果返回值是TRUE,而且这里指向0,则文件已经读到了文件的末尾。

::InternetCloseHandle(hUrlFile) ;
::InternetCloseHandle(hNet) ;

fprintf(fw,"%s",buffer);

memset(ip,0,16);
memset(temp_buffer,0,100);

for(i=0;i<100;i++)
{
temp_buffer[i]=buffer[i+5];
if((buffer[i+5]==' ')&&(buffer[i+6]=='-')&&(buffer[i+7]=='-')&&(buffer[i+8]=='>'))
break;
}

k=i;

printf("%s\n",temp_buffer);

char* pszSrc = new char[k + 1];
int len_src = Base64Decode(pszSrc, temp_buffer);
printf("%s",pszSrc);


printf("\n");

for(i=0;i<k;i++)
{
if(pszSrc[i]!=':')
ip[i]=pszSrc[i];
else
break;
}
ip_len=i;

printf("%s\n",ip);

fclose(fw);

}
贵子潘 2006-07-17
  • 打赏
  • 举报
回复
我以为你从头作IE呢
CW_Wei 2006-07-16
  • 打赏
  • 举报
回复
up
jacklzw88 2006-07-16
  • 打赏
  • 举报
回复
你是想要做什么功能,Chtmlview,webbrowser都可以显示,如果不显示的话你就直接用wininit方法好了
漂流的代码 2006-07-16
  • 打赏
  • 举报
回复
首先找到IHTMLDocument2 接口,然后依次枚举文档的左右节点,利用接点的get_innerHTML获得代码.这里是我以前写的一个程序里面的判断,只是取出了body的html代码

//根据webbrowser的窗口句柄获得IHTMLDocument2接口
BOOL GetIHtmlDocPtr(HWND hwndWeb,IHTMLDocument2**ppHtmlDoc)
{
UINT nMsg = ::RegisterWindowMessage(_T("WM_HTML_GETOBJECT"));
LRESULT lRes;
::SendMessageTimeout( hwndWeb, nMsg, 0L, 0L, SMTO_ABORTIFHUNG, 1000, (DWORD*) &lRes );
HRESULT hr = ObjectFromLresult ( lRes, IID_IHTMLDocument2, 0 , (LPVOID *)ppHtmlDoc);
return SUCCEEDED(hr);
}

//根据接口获得hTML代码
CComPtr<IHTMLElement> pElement;
pIHtmlDoc->get_body(&pElement);
CComBSTR strHtml;
pElement->get_innerHTML(&strHtml);
zcjblueice 2006-07-16
  • 打赏
  • 举报
回复
不会吧,这么复杂啊,我看了一下,MFC里面有个类叫做Chtmlview的吧,好像有些函数,什么navigate2什么的,好像把路径名给出就可以读出来的,不知道有没有这样的SDK能不能实现啊
贵子潘 2006-07-16
  • 打赏
  • 举报
回复
HTML文件就当成普通文件读进内存,再进行解析吧
然后根据解析的结果进行显示

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧