⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tmainserver.cpp

📁 本程序是VC为平台开发的股票资讯系统
💻 CPP
字号:
// TMainServer.cpp : implementation file
//

#include "stdafx.h"
#include "TMainServer.h"


#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// TMainServer

TMainServer::TMainServer()
{
    CurrentPageNo=1;
    NextPageEnable=false;
    CopySearchFlag=false;

}
CString  TMainServer::GetFirstPageResult(CString HtmlSource,CString Key)
{
    CString temp;
    TempKey=Key;
    if (HtmlSource=="")   return  "HtmlSourceeError";
    int pos2=0;
    TSearchServer* UseSearcher=new TSearchServer();
 //if (MainNextPageCharacter.AnsiPos("#No=")!=0) {
    if (MainNextPageCharacter.Find("#No=")!=-1) {
        temp="#No=" ;
        UseSearcher->NextPageCharacter=
            ReplaceNo(MainNextPageCharacter,temp,CurrentPageNo);
    }
 //else if (MainNextPageCharacter.AnsiPos("#No-")!=0) {
    else if (MainNextPageCharacter.Find("#No-")!=-1) {
        temp="#No-" ;
        UseSearcher->NextPageCharacter=
            ReplaceNo(MainNextPageCharacter,temp,CurrentPageNo);
    }
 //else if (MainNextPageCharacter.AnsiPos("#No+")!=0) {
    else if (MainNextPageCharacter.Find("#No+")!=-1) {
         temp="#No+" ;
         UseSearcher->NextPageCharacter=
            ReplaceNo(MainNextPageCharacter,temp,CurrentPageNo+1);
    }
    else  UseSearcher->NextPageCharacter=
             MainNextPageCharacter;

    UseSearcher->UrlAddress=MainUrlAddress;
    UseSearcher->TitleFilterAndClear=MainTitleFilterAndClear;
    UseSearcher->TotalCharacter=MainTotalCharacter;
    UseSearcher->StartPos=MainStartPos;
    UseSearcher->FinishPos=MainFinishPos;
    UseSearcher->ClearLink=MainClearLink;
    UseSearcher->SearchKey=MainSearchKey;
    UseSearcher->LinkFilter=MainLinkFilter;
    UseSearcher->NextPageBaseLink=MainNextPageBaseLink;
    temp=UseSearcher->GetSearchResult(HtmlSource,TempKey);
    CurrentPageNo++;
    if (temp=="SearchError") {
        delete UseSearcher;
        return  "SearchError";
    }
    if (temp=="CharacterError") {
        delete UseSearcher;
        return  "CharacterError" ;
    }
    if (temp=="CharacterChanged") {
        delete UseSearcher;
        return  "CharacterChanged";
    }
    TotalRecords=UseSearcher->TotalRecords();
    NextPageEnable=UseSearcher->GetNextPageFlag();
    MainNextPageUrl=UseSearcher->GetNextPageUrl();
    delete UseSearcher;
    return DisplayResult(temp);
}
//-----------------------------------------
CString  TMainServer::GetNextPageResult(CString HtmlSource,CString Key)
{
    CString temp;
    if (HtmlSource=="")   return  "HtmlSourceeError";
    int pos2=0;
    TSearchServer* UseSearcher=new TSearchServer();
  //if (MainNextPageCharacter.AnsiPos("#No=")!=0) {
    if (MainNextPageCharacter.Find("#No=")!=-1) {
        temp="#No=" ;
        UseSearcher->NextPageCharacter=
            ReplaceNo(MainNextPageCharacter,temp,CurrentPageNo);
    }
    //else if (MainNextPageCharacter.AnsiPos("#No-")!=0) {
    else if (MainNextPageCharacter.Find("#No-")!=-1) {
        temp="#No-" ;
        UseSearcher->NextPageCharacter=
            ReplaceNo(MainNextPageCharacter,temp,CurrentPageNo);
    }
  // else if (MainNextPageCharacter.AnsiPos("#No+")!=0) {
    else if (MainNextPageCharacter.Find("#No+")!=-1) {
         temp="#No+" ;
         UseSearcher->NextPageCharacter=
            ReplaceNo(MainNextPageCharacter,temp,CurrentPageNo+1);
    }
    else  UseSearcher->NextPageCharacter=
             MainNextPageCharacter;

    UseSearcher->UrlAddress=MainUrlAddress;
    UseSearcher->TitleFilterAndClear=MainTitleFilterAndClear;
    UseSearcher->TotalCharacter=MainTotalCharacter;
    UseSearcher->StartPos=MainStartPos;
    UseSearcher->FinishPos=MainFinishPos;
    UseSearcher->ClearLink=MainClearLink;
    UseSearcher->SearchKey=MainSearchKey;
    UseSearcher->LinkFilter=MainLinkFilter;
    UseSearcher->NextPageBaseLink=MainNextPageBaseLink;
    temp=UseSearcher->GetNextPage(HtmlSource,Key);
    CurrentPageNo++;
    if (temp=="SearchError") {
        delete UseSearcher;
        return  "SearchError";
    }
    if (temp=="CharacterError") {
        delete UseSearcher;
        return  "CharacterError" ;
    }
    if (temp=="CharacterChanged") {
        delete UseSearcher;
        return  "CharacterChanged";
    }
    NextPageEnable=UseSearcher->GetNextPageFlag();
    MainNextPageUrl=UseSearcher->GetNextPageUrl();
    delete UseSearcher;
    return DisplayResult(temp);

}

//---------------------------------------------------------------------------
CString  TMainServer::ReplaceNo(CString temp,CString str, int m)
{
     int pos=str.Find("=");   //int pos=str.AnsiPos("=");
     if (pos!=-1) {            //if (pos!=0)
         pos=temp.Find(str);      //pos=temp.AnsiPos(str);
         CString ss=temp;
         ss.Delete(0,pos+str.GetLength()-1);  //ss=ss.Delete(1,pos+str.Length()-1);
         pos=ss.Find("@");             //pos=ss.AnsiPos("@");
         ss=ss.Mid(0,pos);    //ss=ss.SubString(1,pos-1);
         m=m*atoi(ss)+1;   //m=m*atoi(ss.c_str())+1;
         str=str+ss;
     }
     pos=temp.Find(str);    //pos=temp.AnsiPos(str);
	 CString ssp;
	 ssp.Format(_T("%d"),m);
     temp.Insert(pos,ssp);   //temp=temp.Insert(IntToStr(m),pos);
     pos=temp.Find(str);              //pos=temp.AnsiPos(str);
//     temp.Delete(pos-1,str.GetLength()); 
     temp.Delete(pos,str.GetLength()); 
	 //temp=temp.Delete(pos,str.Length());

     pos=temp.Find(str);            //pos=temp.AnsiPos(str);
     if (pos!=-1) {        	 //if (pos!=0)
		 CString ssp;
		 ssp.Format(_T("%d"),m);
         temp.Insert(pos,ssp);   //temp=temp.Insert(IntToStr(m),pos);
         pos=temp.Find(str);     //pos=temp.AnsiPos(str);
//         temp.Delete(pos-1,str.GetLength());  
         temp.Delete(pos,str.GetLength());  
		 //temp=temp.Delete(pos,str.Length());
     }
     return temp;
}


CString  TMainServer::DisplayResult(CString temp)
{
    CString templink,tempbrief="",tempclear="",result="";
    tempclear=MainClearLink;
    int   pos=tempclear.Find("$");          //pos=tempclear.AnsiPos("$");
 //  if (pos!=0) tempclear=tempclear.Delete(1,pos);
    if (pos!=-1) tempclear.Delete(0,pos+1);
    pos=tempclear.Find("@");   // pos=tempclear.AnsiPos("@");
//if (pos!=0)  tempclear=tempclear.Delete(pos,1);
    if (pos!=-1)   
		tempclear.Delete(pos,1);
//		tempclear.Delete(pos-1,1);
    pos=tempclear.Find("&");        //pos=tempclear.AnsiPos("&");
//if (pos!=0)  tempclear=tempclear.Delete(pos,1);
    if (pos!=-1)   tempclear.Delete(pos,1);
    pos=tempclear.Find("#");  //pos=tempclear.AnsiPos("#");
 // if (pos!=0)  tempclear=tempclear.Delete(pos,1);
    if (pos!=-1)   
		tempclear.Delete(pos,1);
//		tempclear.Delete(pos-1,1);
    int n=0;
    pos=temp.Find('\n');     //pos=temp.AnsiPos('\n');
	if(tempclear.IsEmpty()) tempclear = "null";
    while (pos>-1) {         //while (pos>0)
        templink=temp.Mid(0,pos+1);   //templink=temp.SubString(1,pos);
        if (n==3) n=0;
        if (n==0) {
//            if ((result.AnsiPos(templink)!=0)||(templink.AnsiPos(tempclear)!=0)||
//               ((templink.AnsiPos("http")==0)&&(templink.AnsiPos("HTTP")==0)&&
//                 (templink.AnsiPos("Http")==0))) {

		
            if ((result.Find(templink)!=-1)||(templink.Find(tempclear)!=-1)||
               ((templink.Find("http")==-1)&&(templink.Find("HTTP")==-1)&&
                 (templink.Find("Http")==-1))) {
                 temp.Delete(0,pos+1);  //temp=temp.Delete(1,pos);
                pos=temp.Find('\n');  //pos=temp.AnsiPos('\n');
                temp.Delete(0,pos+1);   //temp=temp.Delete(1,pos);
                pos=temp.Find('\n');  //pos=temp.AnsiPos('\n');
                temp.Delete(0,pos+1);    //temp=temp.Delete(1,pos);
                pos=temp.Find('\n');    //pos=temp.AnsiPos('\n');
                n=0;
                continue;
            }
        }
        result=result+templink;
        n++;
        temp.Delete(0,pos+1);    //temp=temp.Delete(1,pos);
        pos=temp.Find('\n');   //pos=temp.AnsiPos('\n');
    }
    return result;
}

/////////////////////////////////////////////////////////////////////////////
// TMainServer message handlers

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -