刪除string類型字符串中指定字符串段


1.實現背景

  在插入list行時用郵件的MessageID給對應行命名。

  在回復全部郵件時,收件人變為之前收件人中出去“自己”同時加入之前發件人,抄送人還是之前的抄送人,密送人不用管,直接不用帶。

  在“回復全部”按鈕響應函數里面

    CListUI* pList = static_cast<CListUI*>(m_PaintManager.FindControl(_T("middle_comlumn_header1")));//拿到list控件指針
            int index = pList->GetCurSel();//獲取當前選中行
            CControlUI* pControl = pList->GetItemAt(index);//獲取對應行控件指針
            string strMsgID = UTF(pControl->GetName().GetData());//獲取對應行控件名字

            const char* gszFile ="WebMail.sqlite";
            CppSQLite3DB *pDB=new CppSQLite3DB;
            pDB->open(gszFile);

            string strSql;
            strSql="SELECT mFrom,mTo,mCc,mSubject FROM Email where mMessageID ='";//在數據庫里面查到對應mMessageID記錄
            strSql+= strMsgID;
            strSql+="'";
            CppSQLite3Query query=pDB->execQuery(strSql.c_str());

            string StrFrom,StrTo,StrCC,StrSub,temp;
            StrFrom = query.getStringField("mFrom");
            StrTo=query.getStringField("mTo");
            temp=m_Imap.ms_User;//要除去的目標字符串
    
            int pos = StrTo.find(temp,0);//找到目標字符串所在位置
            StrTo=StrTo.substr(0,pos-1)+StrTo.substr(pos+temp.length(),StrTo.length()-(pos+temp.length()));
            StrTo+=";";
            StrTo+=StrFrom;

            StrCC=query.getStringField("mCc");

            StrSub=query.getStringField("mSubject");
            StrSub.insert(0,"RE: ");
            query.finalize();
            pDB->close();

            vector<string> data;
            data.push_back(StrTo);
            data.push_back(StrCC);
            data.push_back(StrSub);


            CWriteWnd* pWrite=new CWriteWnd(_T("WriteWnd.xml"),m_Imap,data);

            pWrite->Create(NULL, _T("WriteWnd"), UI_WNDSTYLE_FRAME, WS_EX_WINDOWEDGE | WS_EX_ACCEPTFILES);
            pWrite->CenterWindow();
            pWrite->ShowModal();


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM