济南信息港

当前位置:

下载并保存相关网页

2019/06/20 来源:济南信息港

导读

基本构成思想:利用WinInet类,直接打开会话,进行读取并保存页来相关文件中。实现涵数如下:BOOL GetSourceHtml(

  基本构成思想:利用WinInet类,直接打开会话,进行读取并保存页来相关文件中。

  实现涵数如下:

  BOOL GetSourceHtml(CString theUrl,CString Filename)

  {

  CInternetSession session;

  CInternetFile* file = NULL;

  try

  {

  // 试着连接到指定URL

  file = (CInternetFile*) enURL(theUrl);

  }

  catch (CInternetException* m_pException)

  {

  // 如果有错误的话,置文件为空

  file = NULL;

  m_pException-Delete();

  return FALSE;

  }

  // 用dataStore来保存读取的页文件

  CStdioFile dataStore;

  if (file)

  {

  CString somecode; file://也可采用LPTSTR类型,将不会删除文本中的\n回车符

  BOOL bIsOk = en(strPath+"\\"+Filename,

  Cfile::modeCreate

  Cfile::modeWrite

  Cfile::shareDenyWrite

  Cfile::typeText);

  if (!bIsOk)

  return FALSE;

  // 读写页文件,直到为空

  while (file-ReadString(somecode) != NULL) file://如果采用LPTSTR类型,读取个数nMax置0,使它遇空字符时结束

  {

  iteString(somecode);

  iteString("\n"); file://如果somecode采用LPTSTR类型,可不用此句

  }

  file-Close();

  delete file;

  }

  else

  {

  iteString(_T("到指定服务器的连接建立失败..."));

  return FALSE;

  }

  return TRUE;

  }

  下面让我们来看看,如何使用它:

  1、 加入WinInt类,如下:

  #include "afxinet.h" file://加入下载页要用的头文件

  2、 加入上面下载涵数到你的工程后,在使用时可用下面代码(其中个参数为址,第二个参数为下载后保存的文件名):

  file://获取主程序所在路径,存在全局变量strPath中

  GetModuleFileName(NULL,tBufferSetLength (MAX_PATH+1),MAX_PATH);

  leaseBuffer ();

  int nPos;

  nPos=verseFind (''\\'');

  strPath=ft (nPos);

  BOOL m_bDownloadFailed; m_bDownloadFailed=GetSourceHtml("","t"); file://下载提示文件的默认址

糖尿病胃轻瘫腹胀怎么吃
糖尿病胃轻瘫腹胀怎么治
糖尿病胃轻瘫腹胀症状有哪些
标签