Exemple #1
0
void KUiSelPlayerNearby::LoadScheme(KIniFile* pIni)
{
	if (pIni)
	{
		Init(pIni, "Main");
		m_PlayerList.Init(pIni, "PlayerList");
		m_ListScroll.Init(pIni, "Scroll");
		m_CancelBtn	.Init(pIni, "Close");
		m_RefreshBtn.Init(pIni, "Refresh");
		m_InputEdit.Init(pIni, "InputEdit");

		char	szSection[16];
		for (int i = 0; i < MAX_NUM_BUTTON; i++)
		{
			sprintf(szSection, "ActionBtn_%d", i);
			m_ActionBtns[i].Init(pIni, szSection);
		}
		LoadActionList(pIni);
	}
}
void CSkeletonActionExpDlg::LoadActionList(bool FilterByFile)
{
    m_XmlFile[0] = 0;
    OPENFILENAMEW ofn; 
    ZeroMemory(&ofn, sizeof(OPENFILENAMEW));
    ofn.lStructSize = sizeof(OPENFILENAMEW);
    ofn.hwndOwner = ::GetActiveWindow();
    ofn.lpstrFile = m_XmlFile;
    ofn.nMaxFile = 1024;
    ofn.lpstrFilter = L"动作列表(*.xml)\0*.xml\0所有文件(*.*)\0*.*\0";
    ofn.nFilterIndex = 1;
    ofn.lpstrFileTitle = NULL;
    ofn.lpstrDefExt = L"xml";
    ofn.nMaxFileTitle = 0;
    ofn.lpstrInitialDir = NULL;
    ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;
    if(GetOpenFileNameW(&ofn) == FALSE)
    {
        return;
    }
    return LoadActionList(m_XmlFile , FilterByFile);
}
void CSkeletonActionExpDlg::OnBnClickedActionLoad()
{
     return LoadActionList(true);
}
//加载IM参数
bool implementsetting::LoadParaIM(void)
{
    string strValue;
    //ip
    __ipNameList = GetNameList( GetRowFromIMFile("ip","namelist",""));

    for(int i=0; i<(int)__ipNameList.size(); i++)
    {
        __ipmap[__ipNameList[i]] = GetRowFromIMFile("ip",__ipNameList[i],"");
        strValue = GetRowFromCfgFile("ip", __ipNameList[i], "");
        if (strValue != "")
        {
            __ipmap[__ipNameList[i]] = strValue;
        }
        else
        {
            return false;
        }
        __ipGpioBak[ __ipmap[__ipNameList[i]]] = __ipGpioBakArray[i];
    }

    //switch
    __switchNameList = GetNameList( GetRowFromIMFile("switch","namelist",""));

    for(int i=0; i<(int)__switchNameList.size(); i++)
    {
        iniSwitch is;
        is.name = __switchNameList[i];
        vector<string>&temp =  GetNameList( GetRowFromIMFile("switch",__switchNameList[i],""));
        for(int j=0; j<(int)temp.size(); j++)
        {
            //mingw编译不通过,改为拷贝赋值
            string index = GetRowFromIMFile("switch",temp[j],"0");
            is.io[temp[j]] = atol(index.c_str());
        }
        __switchMap[__switchNameList[i]] = is;
    }

    //ACTION
    LoadActionList("actiontx1",*__ac_tx1);
    LoadActionList("actiontx2",*__ac_tx2);
    LoadActionList("actionpim",*__ac_pim);
    LoadActionList("actiondet",*__ac_det);

    const regex pattern("\\d{1,4}");
    smatch mat;
    stHostControl stHC;

    for(map<string,string>::iterator itr = __ipmap.begin();
            itr != __ipmap.end();
            itr++)
    {
        stHC.state = true;
        stHC.enable = true;
        stHC.name = itr->first;
        stHC.ip = itr->second;
        regex_search(itr->first, mat, pattern);
        //__hostCtrl.push_back(stHC);
        if (mat[0].str() != "")
            __hostCtrl[mat[0].str()] = stHC;
        else
            __hostCtrl[stHC.name] = stHC;
    }

    for( map<string,unsigned short*> ::iterator it = __ipGpioBak.begin();
            it != __ipGpioBak.end();
            it++
       )
    {
        memset((void*)it->second,0,10);
    }

    return true;
}