CString __stdcall GetValueByKey(const char *key,const char *scr,char *outstr )
{
//按我的需求请写出这里的代码
//这两个参数: key = QQ, scr = <&QQ&>123456</&QQ&>, 那么outstr输出就是123456,就是说用正则或字符串处理的方式用key去匹配scr里的数据,最终将得到的值赋outstr
}
{
//按我的需求请写出这里的代码
//这两个参数: key = QQ, scr = <&QQ&>123456</&QQ&>, 那么outstr输出就是123456,就是说用正则或字符串处理的方式用key去匹配scr里的数据,最终将得到的值赋outstr
}
解决方案 »
- l我没有调用UpdateData(FALSE),为什么我的dlg生成出来后,控件里有乱码?
- 高手推荐一本编译原理的书
- Win32中怎样定义一个非菜单加速键
- 如何实现窗口的全屏
- 如何让生成excel文件快点?
- 如何将窗口在最前显示——always on top
- EXCEL真的很适合写文档,so指教有关EXCEL使用的问题!谢谢
- 怎样在CListCtrl对象中显示图象,高分相赠!
- 请高手指点关于LDAP API的使用,谢谢!!!
- 请问如何在DCOM中实现连接器?
- 建项目时,VS2005 找不到Win32 Dynamic-Link Library,提醒一下,谢谢了
- ado向sybase插入数据时遇到带中文的SQL就出错
GetValueByKey("QQ","<&QQ&>1234567<&QQ&>",cOutStr);
AfxMessageBox(cOutStr);CString GetValueByKey(const char *key, const char *scr, char *outstr)
{
CString strTempKey;
CString strTempScr;
CString strTempOutStr;
strTempKey.Format("<&%s&>",key);
strTempScr.Format("%s",scr);
int nStartPos = strTempScr.Find(strTempKey,0);
int nEndPos = strTempScr.Find(strTempKey,nStartPos+1);
strTempOutStr = strTempScr.Mid(nStartPos + strTempKey.GetLength(),nEndPos-nStartPos - strTempKey.GetLength());
strcpy(outstr,strTempOutStr);
return strTempOutStr;
}
{
if (NULL == ppOutstr)
{
return false;
}
int iKeyLen = _tcslen(pKey); const TCHAR* pStart = NULL;
pStart = _tcsstr(pScr,pKey);
if (pStart == NULL)
{
return false;
}
pStart = pStart + iKeyLen + 2; const TCHAR* pEnd = NULL;
pEnd = _tcsstr(pStart,pKey);
if (pEnd == NULL)
{
return false;
}
pEnd = pEnd - 3; long len = pEnd - pStart + 1; *ppOutstr = new TCHAR[len];
memset(*ppOutstr, 0, len * sizeof(TCHAR) );
_tcsncpy(*ppOutstr, pStart,len-1);
return true;
}
//如下是调用
TCHAR* pScr = _T("scr = <&QQ&>123456</&QQ&>");
TCHAR* pKey = _T("QQ");
TCHAR* pOut = NULL;
bool bGet = GetValueByKey(pKey, pScr, &pOut);
if (pOut != NULL)
{
delete []pOut;
pOut = NULL;
}