Ejemplo n.º 1
0
void AddInSessionOrder(MCONTACT hContact, int mode, int ordernum, int writemode)
{
	char szFormNumBuf[100];
	mir_snprintf(szFormNumBuf, "%02u", ordernum);

	if (mode == 0) {
		ptrA szValue(db_get_sa(hContact, MODNAME, "LastSessionsMarks"));
		if (szValue) {
			int len = (int)mir_strlen(szValue);
			if (!len)
				len = 20;

			char *temp2 = (char*)_alloca(len - 1);
			strncpy(temp2, szValue, len - 2);
			temp2[len - 2] = '\0';

			char *temp = (char*)_alloca(len + 1);
			mir_snprintf(temp, len + 1, "%02u%s", ordernum, temp2);

			for (int i = (g_ses_limit * 2); i < 20; i++)
				temp[i] = '0';

			db_set_s(hContact, MODNAME, "LastSessionsOrder", temp);
		}
		else if (writemode == 1) {
			mir_snprintf(szFormNumBuf, "%02u%s", ordernum, "000000000000000000");
			db_set_s(hContact, MODNAME, "LastSessionsOrder", szFormNumBuf);
		}
	}
	else if (mode == 1) {
		ptrA szValue(db_get_sa(hContact, MODNAME, "UserSessionsOrder"));
		if (szValue) {
			char *pszBuffer;
			if (mir_strlen(szValue) < (g_ses_count * 2)) {
				pszBuffer = (char*)mir_alloc((g_ses_count * 2) + 1);
				memset(pszBuffer, 0, ((g_ses_count * 2) + 1));
				mir_strcpy(pszBuffer, szValue);
			}
			else pszBuffer = mir_strdup(szValue);

			int len = (int)mir_strlen(pszBuffer);
			len = (len == 0) ? 20 : len + 2;
			char *temp = (char*)_alloca(len + 1);
			mir_snprintf(temp, len + 1, "%02u%s", ordernum, szValue);

			db_set_s(hContact, MODNAME, "UserSessionsOrder", temp);
			mir_free(pszBuffer);
		}
		else if (writemode == 1)
			db_set_s(hContact, MODNAME, "UserSessionsOrder", szFormNumBuf);
		else
			db_set_s(hContact, MODNAME, "UserSessionsOrder", "00");
	}
}
Ejemplo n.º 2
0
void SVConditionParam::createCondition()
{
    int nRow = numRows();
    m_pLabel = new WText(m_szLabel, (WContainerWidget*)elementAt(nRow, 0));
    elementAt(nRow, 0)->setContentAlignment(AlignTop | AlignLeft);
    elementAt(nRow, 0)->setStyleClass("cell_10");

    string szValue ("");
    if(!m_szDefaultValue.empty())
        szValue = chLeftBracket + m_szDefaultValue + chRightBracket;

    m_pConditionArea = new WTextArea(szValue, (WContainerWidget*)elementAt(nRow, 1));
    if(m_pConditionArea)
    {
        //if(strcmp(m_szDefaultValue.substr(0, 1).c_str(), &chLeftBracket) == 0 )
        //    m_pConditionArea->setText(m_szDefaultValue);
        m_pConditionArea->setStyleClass(m_szStyle);
    }

    createShowButton(nRow);
    createHelp(nRow);

    m_pOperate = new WTable((WContainerWidget*)elementAt(nRow,1));
    if(m_pOperate)
    {
        m_pOperate->setStyleClass("conditionset");
        createHideButton();
        createAddConidtion();
        createButtonGroup();
        m_pOperate->hide();
    }
}
Ejemplo n.º 3
0
void CJabberProto::SearchDeleteFromRecent(const TCHAR *szAddr, BOOL deleteLastFromDB)
{
	//search in recent
	for (int i=0; i<10; i++) {
		char key[30];
		mir_snprintf(key, SIZEOF(key), "RecentlySearched_%d", i);
		ptrT szValue( getTStringA(key));
		if (szValue == NULL || _tcsicmp(szAddr, szValue))
			continue;

		for (int j=i; j < 10; j++) {
			mir_snprintf(key, SIZEOF(key), "RecentlySearched_%d", j + 1);
			szValue = getTStringA(key);
			if (szValue != NULL) {
				mir_snprintf(key, SIZEOF(key), "RecentlySearched_%d", j);
				setTString(NULL, key, szValue);
			}
			else {
				if (deleteLastFromDB) {
					mir_snprintf(key, SIZEOF(key), "RecentlySearched_%d", j);
					delSetting(NULL,key);
				}
				break;
		}	}
		break;
}	}
Ejemplo n.º 4
0
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 创建条件
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
void SVConditionParam::createCondition()
{
    int nRow = numRows();
    m_pLabel = new WText(m_szLabel, elementAt(nRow, 0));

    elementAt(nRow, 0)->setContentAlignment(AlignTop | AlignLeft);
    elementAt(nRow, 0)->setStyleClass("table_list_data_input_text");
    GetRow(nRow)->setStyleClass("padding_top");

    string szValue ("");
    if(!m_szDefaultValue.empty())
        szValue = chLeftBracket + m_szDefaultValue + chRightBracket;

    m_pConditionArea = new WTextArea(szValue, elementAt(nRow, 1));

    if(m_pConditionArea)
        m_pConditionArea->setStyleClass(m_szStyle);

    elementAt(nRow, 1)->setStyleClass("table_data_text");

    createShowButton(nRow);
    createHelp(nRow);
    m_pOperate = new WTable(elementAt(nRow,1));
    if(m_pOperate)
    {
        m_pOperate->setStyleClass("conditionset");
        createHideButton();
        createAddConidtion();
        createButtonGroup();
        m_pOperate->hide();
    }
}
Ejemplo n.º 5
0
static int DefaultOnClick(WPARAM hContact, LPARAM lParam, LPARAM param)
{
	Info *p = (Info*)param;
	if (p == NULL)
		return 0;

	if (hContact == NULL)
		return 0;

	char *proto = GetContactProto(hContact);
	if (IsEmpty(proto))
		return 0;

	bool found = false;
	for (int j = 0; !found && j < SIZEOF(p->db); j += 2) {
		if (p->db[j + 1] == NULL)
			break;

		ptrA szValue(db_get_sa(hContact, p->db[j] == NULL ? proto : p->db[j], p->db[j + 1]));
		if (!IsEmpty(szValue)) {
			p->OnClick(p, szValue);
			found = true;
		}
	}

	return 0;
}
Ejemplo n.º 6
0
void AddSessionMark(MCONTACT hContact, int mode, char bit)
{
	if (mode == 0) {
		ptrA szValue(db_get_sa(hContact, MODNAME, "LastSessionsMarks"));
		if (szValue) {
			char temp_1 = szValue[0];
			for (int i = 0; i < g_ses_limit; i++) {
				char temp_2 = szValue[i + 1];
				szValue[i + 1] = temp_1;
				temp_1 = temp_2;
			}
			for (int i = g_ses_limit; i < 10; i++)
				szValue[i] = '0';
			szValue[0] = bit;
			db_set_s(hContact, MODNAME, "LastSessionsMarks", szValue);
		}
		else if (bit == '1')
			db_set_s(hContact, MODNAME, "LastSessionsMarks", "10000000000");
	}
	else if (mode == 1) {
		ptrA szValue(db_get_sa(hContact, MODNAME, "UserSessionsMarks"));
		if (szValue) {
			char *pszBuffer;
			if (mir_strlen(szValue) < g_ses_count) {
				pszBuffer = (char*)mir_alloc(g_ses_count + 1);
				memset(pszBuffer, 0, (g_ses_count + 1));
				mir_strcpy(pszBuffer, szValue);
			}
			else pszBuffer = szValue.detach();

			char temp_1 = pszBuffer[0];
			for (int i = 0; i < g_ses_count; i++) {
				char temp_2 = pszBuffer[i + 1];
				pszBuffer[i + 1] = temp_1;
				temp_1 = temp_2;
			}
			pszBuffer[0] = bit;
			db_set_s(hContact, MODNAME, "UserSessionsMarks", pszBuffer);

			mir_free(pszBuffer);
		}
		else if (bit == '1')
			db_set_s(hContact, MODNAME, "UserSessionsMarks", "10000000000");
		else
			db_set_s(hContact, MODNAME, "UserSessionsMarks", "00000000000");
	}
}
Ejemplo n.º 7
0
void SetSessionMark(MCONTACT hContact, int mode, char bit, unsigned int marknum)
{
	if (mode == 0) {
		ptrA szValue(db_get_sa(hContact, MODNAME, "LastSessionsMarks"));
		if (szValue) {
			szValue[marknum] = bit;
			db_set_s(hContact, MODNAME, "LastSessionsMarks", szValue);
		}
	}
	else if (mode == 1) {
		ptrA szValue(db_get_sa(hContact, MODNAME, "UserSessionsMarks"));
		if (szValue) {
			szValue[marknum] = bit;
			db_set_s(hContact, MODNAME, "UserSessionsMarks", szValue);
		}
	}
}
Ejemplo n.º 8
0
AsyncHttpRequest* operator<<(AsyncHttpRequest *pReq, const TCHAR_PARAM &param)
{
	T2Utf szValue(param.tszValue);
	CMStringA &s = pReq->m_szParam;
	if (!s.IsEmpty())
		s.AppendChar('&');
	s.AppendFormat("%s=%s", param.szName, ptrA(pReq->bExpUrlEncode ? ExpUrlEncode(szValue) : mir_urlEncode(szValue)));
	return pReq;
}
Ejemplo n.º 9
0
void CVkProto::OnReceiveUserInfo(NETLIBHTTPREQUEST *reply, AsyncHttpRequest *pReq)
{
	debugLogA("CVkProto::OnReceiveUserInfo %d", reply->resultCode);
	if (reply->resultCode != 200)
		return;

	JSONROOT pRoot;
	JSONNODE *pResponse = CheckJsonResponse(pReq, reply, pRoot);
	if (pResponse == NULL)
		return;

	for (size_t i=0; ; i++) {
		JSONNODE *pRecord = json_at(pResponse, i);
		if (pRecord == NULL) break;

		LONG userid = json_as_int( json_get(pRecord, "uid"));
		if (userid == 0)
			return;

		MCONTACT hContact;
		if (userid == m_myUserId)
			hContact = NULL;
		else if ((hContact = FindUser(userid, false)) == NULL)
			return;

		CMString tszNick;
		ptrT szValue( json_as_string( json_get(pRecord, "first_name")));
		if (szValue) {
			setTString(hContact, "FirstName", szValue);
			tszNick.Append(szValue);
			tszNick.AppendChar(' ');
		}

		if (szValue = json_as_string( json_get(pRecord, "last_name"))) {
			setTString(hContact, "LastName", szValue);
			tszNick.Append(szValue);
		}

		if (!tszNick.IsEmpty())
			setTString(hContact, "Nick", tszNick);
	
		setByte(hContact, "Gender", json_as_int( json_get(pRecord, "sex")) == 2 ? 'M' : 'F');
	
		if (szValue = json_as_string( json_get(pRecord, "bdate"))) {
			int d, m, y;
			if ( _stscanf(szValue, _T("%d.%d.%d"), &d, &m, &y) == 3) {
				setByte(hContact, "BirthDay", d);
				setByte(hContact, "BirthMonth", m);
				setWord(hContact, "BirthYear", y);
			}
		}

		szValue = json_as_string( json_get(pRecord, "photo_medium"));
		SetAvatarUrl(hContact, szValue);
	}
}
Ejemplo n.º 10
0
int GetInSessionOrder(MCONTACT hContact, int mode, int count)
{
	char szTemp[3];
	if (mode == 0) {
		ptrA szValue(db_get_sa(hContact, MODNAME, "LastSessionsOrder"));
		if (szValue) {
			strncpy_s(szTemp, &szValue[count * 2], 2);
			return atoi(szTemp);
		}
	}
	else if (mode == 1) {
		ptrA szValue(db_get_sa(hContact, MODNAME, "UserSessionsOrder"));
		if (szValue) {
			strncpy_s(szTemp, &szValue[count * 2], 2);
			return atoi(szTemp);
		}
	}
	return 0;
}
Ejemplo n.º 11
0
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 设置条件
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
void SVConditionParam::SetCondition(MAPNODE &alertnode)
{
    string szRelationCount ("");

    // 条件文本置空
    if(m_pConditionArea)
        m_pConditionArea->setText("");

    // 设置帮助文本
    if(m_pHelpText)
        m_pHelpText->setText(m_szHelp);

    // 设置错误提示信息
    if(m_pErrText)
        m_pErrText->setText(m_szTip);

    // 得到条件
    FindNodeValue(alertnode, svConditionCount, szRelationCount);
    char szKey [16] = {0};
    string szCondition (""), szReturn (""), szParamValue ("") , szRelation ("");
    int nCount = 0;

    // 展示条件
    if(!szRelationCount.empty())
    {
        nCount = atoi(szRelationCount.c_str());
        for(int i = 1; i <= nCount; i++)
        {
            szRelation = "";
            sprintf(szKey, svRelation, i);
            FindNodeValue(alertnode, szKey, szRelation);
            sprintf(szKey, svParamName, i);
            FindNodeValue(alertnode, szKey, szReturn);
            sprintf(szKey, svOperate, i);
            FindNodeValue(alertnode, szKey, szCondition);
            sprintf(szKey, svParamValue, i);
            FindNodeValue(alertnode, szKey, szParamValue);
            getParamLabel(szReturn);
            if(m_pConditionArea)
            {
                string szValue("");
                if(!szRelation.empty())
                    szValue = chLeftBracket + szReturn + " " + szCondition + " " + szParamValue + chRightBracket
                              + " " + szRelation + " ";
                else
                    szValue = chLeftBracket + szReturn + " " + szCondition + " " + szParamValue + chRightBracket;

                m_pConditionArea->setText(m_pConditionArea->text() + szValue);
            }
        }
    }
}
Ejemplo n.º 12
0
void SetInSessionOrder(MCONTACT hContact, int mode, int count, unsigned int ordernum)
{
	char szTemp[3];
	mir_snprintf(szTemp, "%02u", ordernum);

	if (mode == 0) {
		ptrA szValue(db_get_sa(hContact, MODNAME, "LastSessionsOrder"));
		if (szValue) {
			szValue[count * 2] = szTemp[0];
			szValue[count * 2 + 1] = szTemp[1];
			db_set_s(hContact, MODNAME, "LastSessionsOrder", szValue);
		}
	}
	else if (mode == 1) {
		ptrA szValue(db_get_sa(hContact, MODNAME, "UserSessionsOrder"));
		if (szValue) {
			szValue[count * 2] = szTemp[0];
			szValue[count * 2 + 1] = szTemp[1];
			db_set_s(hContact, MODNAME, "UserSessionsOrder", szValue);
		}
	}
}
Ejemplo n.º 13
0
void RemoveSessionMark(MCONTACT hContact, int mode, int marknum)
{
	if (mode == 0) {
		ptrA szValue(db_get_sa(hContact, MODNAME, "LastSessionsMarks"));
		if (szValue) {
			for (int i = marknum; i < g_ses_limit; i++)
				szValue[i] = szValue[i + 1];

			for (int i = g_ses_limit; i < 10; i++)
				szValue[i] = '0';

			db_set_s(hContact, MODNAME, "LastSessionsMarks", szValue);
		}
	}
	else if (mode == 1) {
		ptrA szValue(db_get_sa(hContact, MODNAME, "UserSessionsMarks"));
		if (szValue) {
			for (int i = marknum; i < g_ses_limit; i++)
				szValue[i] = szValue[i + 1];

			db_set_s(hContact, MODNAME, "UserSessionsMarks", szValue);
		}
	}
}
Ejemplo n.º 14
0
DWORD CSettingWindow::dwFromText(LPCTSTR lpszValue)
{
	ASSERT(lpszValue);
	DWORD dwValue = 0;
	CString szValue(lpszValue);
	if(szValue==_T("常规"))
		dwValue = 0;
	else if (szValue==_T("粗体"))
		dwValue = 1;
	else if(szValue==_T("斜体"))
		dwValue = 2;
	else if(szValue==_T("粗体|斜体"))
		dwValue = 3;

	return dwValue;
}
void CConfigPostHandler::onData(CHttpRequest *pRequest, const uint8_t *pData, size_t nLength) {
	for (size_t i = 0; i < nLength; i++) {
		if (m_nEscapeLeft) {
			m_nEscapeLeft--;
			m_cEscape <<= 4;
			if (pData[i] >= '0' && pData[i] <= '9')
				m_cEscape |= (pData[i] - '0');
			else if (pData[i] >= 'a' && pData[i] <= 'z')
				m_cEscape |= (pData[i] - 'a') + 10;
			else if (pData[i] >= 'A' && pData[i] <= 'Z')
				m_cEscape |= (pData[i] - 'A') + 10;
			if (m_nEscapeLeft == 0)
				m_vBuffer.push_back(m_cEscape);
		} else if (pData[i] == '=') {
			DEBUG("Equal sign");
			if (m_bHasKey) {
				m_vBuffer.push_back(pData[i]);
			} else {
				m_szKey = std::string(m_vBuffer.begin(), m_vBuffer.end());
				m_vBuffer.clear();
				m_bHasKey = true;
			}
		} else if (pData[i] == '&') {
			DEBUG("Ampersand");
			if (!m_bHasKey) {
				m_szKey=std::string(m_vBuffer.begin(), m_vBuffer.end());
				m_vBuffer.clear();
				m_bHasKey=true;
			}
			std::string szValue(m_vBuffer.begin(), m_vBuffer.end());
			DEBUG("Insert %s = %s", m_szKey.c_str(), szValue.c_str());
			m_mValues[m_szKey]=szValue;

			m_vBuffer.clear();
			m_bHasKey = false;
		} else if (pData[i] == '%') {
			m_cEscape = 0;
			m_nEscapeLeft = 2;
		} else if (pData[i] == '+') {
			m_vBuffer.push_back(' ');
		} else {
			m_vBuffer.push_back(pData[i]);
		}
	}
}
Ejemplo n.º 16
0
void CJabberProto::SearchAddToRecent(const TCHAR *szAddr, HWND hwndDialog)
{
	char key[30];
	SearchDeleteFromRecent(szAddr);

	for (int j=9; j > 0; j--) {
		mir_snprintf(key, SIZEOF(key), "RecentlySearched_%d", j - 1);
		ptrT szValue( getTStringA(key));
		if (szValue != NULL) {
			mir_snprintf(key, SIZEOF(key), "RecentlySearched_%d", j);
			setTString(NULL, key, szValue);
	}	}

	mir_snprintf(key, SIZEOF(key), "RecentlySearched_%d", 0);
	setTString(key, szAddr);
	if (hwndDialog)
		JabberSearchAddUrlToRecentCombo(hwndDialog, szAddr);
}
Ejemplo n.º 17
0
const string SVResString::getStringFromRes(const char *pcszResID)
{
    string szValue("");
    if(m_objRes != INVALID_VALUE)
    {
        MAPNODE resNode = GetResourceNode(m_objRes);
        if(resNode != INVALID_VALUE)
        {
            if(FindNodeValue(resNode, pcszResID, szValue))
                m_lsResource[pcszResID] = szValue;
            else
            {
                m_lsResource[pcszResID] = pcszResID;
                szValue = pcszResID;
            }
        }
    }
    return szValue;
}
Ejemplo n.º 18
0
void SVConditionParam::SetCondition(MAPNODE &alertnode)
{
    string szRelationCount ("");

    if(m_pConditionArea)
        m_pConditionArea->setText("");

    FindNodeValue(alertnode, "sv_conditioncount", szRelationCount); 
    char szKey [16] = {0};
    string szCondition (""), szReturn (""), szParamValue ("") , szRelation ("");
    int nCount = 0;
    if(!szRelationCount.empty())
    {
        nCount = atoi(szRelationCount.c_str());
        for(int i = 1; i <= nCount; i++)
        {
            szRelation = "";
            sprintf(szKey, "sv_relation%d", i);
            FindNodeValue(alertnode, szKey, szRelation);
            sprintf(szKey, "sv_paramname%d", i);
            FindNodeValue(alertnode, szKey, szReturn);
            sprintf(szKey, "sv_operate%d", i);
            FindNodeValue(alertnode, szKey, szCondition);
            sprintf(szKey, "sv_paramvalue%d", i);
            FindNodeValue(alertnode, szKey, szParamValue); 
            getParamLabel(szReturn);
            if(m_pConditionArea)
            {
                string szValue("");
                if(!szRelation.empty())
                    szValue = chLeftBracket + szReturn + " " + szCondition + " " + szParamValue + chRightBracket + " " + szRelation + " ";
                else
                    szValue = chLeftBracket + szReturn + " " + szCondition + " " + szParamValue + chRightBracket;

                m_pConditionArea->setText(m_pConditionArea->text() + szValue);
            }
        }
    }
}
void CConfigPostHandler::onDataDone(CHttpRequest *pRequest) {
	//Handle last bit of data
	if (!m_bHasKey) {
		m_szKey=std::string(m_vBuffer.begin(), m_vBuffer.end());
		m_vBuffer.clear();
		m_bHasKey=true;
	}
	std::string szValue(m_vBuffer.begin(), m_vBuffer.end());
	m_mValues[m_szKey]=szValue;

	m_vBuffer.clear();
	m_bHasKey = false;

	// Start output
	m_szOutput = "<html><head>";
	m_szOutput += "<title>Saving...</title>";
	m_szOutput += "<meta http-equiv=\"refresh\" content=\"3;url=/\" />";
	m_szOutput += "</head><body>";

	// Write out config
	const uint8_t pHeader[] = CONFIG_HEADER;
	m_pWriter = new CConfigWriter(CONFIG_START_SECTOR, CONFIG_SECTOR_DIRECTION);
	m_pWriter->writeBytes(pHeader,sizeof(pHeader)); // Header
	config_run(this);
	m_pWriter->writeUInt(ConfigSectionEnd);
	m_pWriter->flush(true);
	delete m_pWriter;

	m_szOutput += "<p>Please wait for the unit to reboot...</p>";

	m_szOutput += "</body></html>";

	pRequest->startHeaders(200,"OK");
	pRequest->sendHeader("Content-Type", "text/html");
	pRequest->sendHeader("Content-Length", m_szOutput.length());
	pRequest->sendHeader("Refresh","3;url=/");
	pRequest->endHeaders();
	pRequest->sendData((const uint8_t *)m_szOutput.c_str(), m_szOutput.length());
}
Ejemplo n.º 20
0
static void SetExtraIcons(MCONTACT hContact)
{
	if (hContact == NULL)
		return;

	char *proto = GetContactProto(hContact);
	if ( IsEmpty(proto))
		return;

	for (unsigned int i = 0; i < SIZEOF(infos); i++) {
		Info &p = infos[i];

		for (unsigned int j = 0; j < SIZEOF(p.db); j += 2) {
			if (p.db[j + 1] == NULL)
				break;

			ptrA szValue(db_get_sa(hContact, p.db[j] == NULL ? proto : p.db[j], p.db[j + 1]));
			if (!IsEmpty(szValue)) {
				ExtraIcon_SetIcon(p.hExtraIcon, hContact, p.hIcolib);
				break;
			}
		}
	}
}
Ejemplo n.º 21
0
void CEvaluate::EV(CDoubleMatrix &m, CResult *pResult)
{
	double fSum = 0;
	int i=0, j=0, k=0, nSize=0, nRowIndex=0;
	CTString szValue("");//字符串
	CTArray<int, int>arrFreq;
	CDoubleVector  v;   
	CPtrArray arr;
	tagDataPointValVal *pDPVV1 = NULL;
	tagDataPointValVal *pDPVV2 = NULL;
	tagDataPointValVal *pDPVV3 = NULL;

	//计算频率
	v = m.col(0);
	arrFreq = CalcFrequence(v);
	int n = arrFreq.GetSize();
	//评估结果值
	CDoubleMatrix me(n,n);    
	CalcEvalue(m,arrFreq,me);
	//表格及画图
	CTLTable *pTable = new CTLTable;
	pTable->SetTitle("决策树预测比对表");
	for (i=0; i<n+2; i++)
	{
		if (i==0)
		{
			szValue = "";
		}
		else if(i<n+1)
		{
			szValue = GetLabel(arrFreq.GetAt(i-1));
		}
		else
		{
			szValue = "合计";
		}
		if (i > 0 && i < n+1)
			pTable->InsertColumn(i,"预测_"+szValue);
		else
			pTable->InsertColumn(i,szValue);
		if (i > 0) pTable->InsertItem(i-1,szValue);
	}
	for (i=0; i<n+1; i++)
	{
		for (j=0; j<n+1; j++)
		{
			if (i == n && j != n)
			{
				fSum = 0;
				for (k=0; k<n; k++)
					fSum += me(k)(j);
			}
			else if (i != n && j == n)
			{
				fSum = me(i).sum();
			}
			else if (i==n && j== n)
			{
				fSum = 0;
				for (k=0; k<n; k++)
					fSum += me(k).sum();
			}
			else
			{
				fSum = me(i)(j);
			}
			pTable->SetItemText(i,j+1,fSum);
		}
	}
	//添加表
	CRsltElementTable *pETable = new CRsltElementTable("决策树预测比对表",pTable);//申请一个表对象类的对象
	pResult->Add(pETable);
	//文本
	CalcText(me,arrFreq,v);
	CRsltElementText *pText = new CRsltElementText("描述信息");
	szValue.Format("正确率为:%.2f%",v(4)<DOUBLE_ZERO ? 0 : 100*v(1)/v(4));
	pText->AddString(szValue);
	szValue.Format("覆盖率为:%.2f%",v(2)<DOUBLE_ZERO ? 0 : 100*v(0)/v(2));
	pText->AddString(szValue);
	szValue.Format("准确率为:%.2f%",v(3)<DOUBLE_ZERO ? 0 : 100*v(0)/v(3));
	pText->AddString(szValue);
	pResult->Add(pText);
	//计算图表
	CalcChart(m, &arr);
	//画表
	pTable = new CTLTable;
	pTable->SetTitle("决策树预测图表值");
	pTable->InsertColumn(0,"");
	pTable->InsertColumn(1,"百分位");
	pTable->InsertColumn(2,"Gain值");
	pTable->InsertColumn(3,"Lift值");
	j = 0;
	nSize = arr.GetSize();
	pDPVV1 = new tagDataPointValVal[nSize];
	pDPVV2 = new tagDataPointValVal[2];
	pDPVV3 = new tagDataPointValVal[nSize];
	for (i=nSize-1; i>=0; i--)
	{
		CEv *pEv = (CEv *)arr.GetAt(i);
		pDPVV1[j].fXVal = pEv->fX;
		pDPVV1[j].fYVal = pEv->fY;
		pDPVV3[j].fXVal = pEv->fX;
		pDPVV3[j].fYVal = pEv->fY/pEv->fX;
		szValue.Format("%d",j);
		pTable->InsertItem(j,szValue);
		pTable->SetItemText(j,1,pEv->fX);
		pTable->SetItemText(j,2,pEv->fY);
		pTable->SetItemText(j,3,pEv->fY/pEv->fX);
		j ++;
	}
	//直线
	pDPVV2[0].fXVal = pDPVV1[0].fXVal;
	pDPVV2[0].fYVal = pDPVV1[0].fYVal;
	pDPVV2[1].fXVal = pDPVV1[nSize-1].fXVal;
	pDPVV2[1].fYVal = pDPVV1[nSize-1].fYVal;
	//添加图形
	pETable = new CRsltElementTable("决策树预测图表值",pTable);//申请一个表对象类的对象
	pResult->Add(pETable);
	//画图-Gain
	CTChartLine *pLine = new CTChartLine;
	pLine->SetLine(pDPVV1, nSize, ValVal);
	pLine->SetXAxilLabel("百分位数");
	pLine->SetYAxilLabel("Gain值");
	CRsltElementChart *pChart = new CRsltElementChart("Gain图",pLine);
	pResult->SetName("Gain图"); 
	//直线
	pLine->SetLine(pDPVV2, 2, ValVal);
	pResult->Add(pChart);
	//Lift图
	pLine = new CTChartLine;
	pLine->SetLine(pDPVV3, nSize, ValVal);
	pLine->SetXAxilLabel("百分位数");
	pLine->SetYAxilLabel("Lift值");
	pChart = new CRsltElementChart("Lift图",pLine);
	pResult->SetName("Lift图"); 
	pResult->Add(pChart);
	//释放内存
	delete []pDPVV1;
	delete []pDPVV2;
	delete []pDPVV3;
	Release(&arr);
}
Ejemplo n.º 22
0
// load options from database + set default if the setting does not exist
void LoadOptions(void)
{
	memset(&opt, 0, sizeof(opt));

	// main options
	opt.StartupUpdate = db_get_b(NULL, WEATHERPROTONAME, "StartupUpdate", true);
	opt.AutoUpdate = db_get_b(NULL, WEATHERPROTONAME, "AutoUpdate", true);
	opt.UpdateTime = db_get_w(NULL, WEATHERPROTONAME, "UpdateTime", 30);
	opt.NoProtoCondition = db_get_b(NULL, WEATHERPROTONAME, "NoStatus", true);
	opt.UpdateOnlyConditionChanged = db_get_b(NULL, WEATHERPROTONAME, "CondChangeAsUpdate", true);
	opt.RemoveOldData = db_get_b(NULL, WEATHERPROTONAME, "RemoveOld", false);
	opt.MakeItalic = db_get_b(NULL, WEATHERPROTONAME, "MakeItalic", true);
	opt.AvatarSize = db_get_b(NULL, WEATHERPROTONAME, "AvatarSize", 128);

	// units
	opt.tUnit = db_get_w(NULL, WEATHERPROTONAME, "tUnit", 1);
	opt.wUnit = db_get_w(NULL, WEATHERPROTONAME, "wUnit", 2);
	opt.vUnit = db_get_w(NULL, WEATHERPROTONAME, "vUnit", 1);
	opt.pUnit = db_get_w(NULL, WEATHERPROTONAME, "pUnit", 4);
	opt.dUnit = db_get_w(NULL, WEATHERPROTONAME, "dUnit", 1);
	opt.eUnit = db_get_w(NULL, WEATHERPROTONAME, "eUnit", 2);

	ptrT szValue(db_get_tsa(NULL, WEATHERPROTONAME, "DegreeSign"));
	_tcsncpy_s(opt.DegreeSign, (szValue == NULL) ? _T("") : szValue, _TRUNCATE);

	opt.DoNotAppendUnit = db_get_b(NULL, WEATHERPROTONAME, "DoNotAppendUnit", 0);
	opt.NoFrac = db_get_b(NULL, WEATHERPROTONAME, "NoFractions", 0);

	// texts
	if (szValue = db_get_tsa(NULL, WEATHERPROTONAME, "DisplayText"))
		wSetData(&opt.cText, TranslateTS(szValue));
	else
		SetTextDefault("C");

	if (szValue = db_get_tsa(NULL, WEATHERPROTONAME, "BriefTextTitle"))
		wSetData(&opt.bTitle, TranslateTS(szValue));
	else
		SetTextDefault("b");

	if (szValue = db_get_tsa(NULL, WEATHERPROTONAME, "BriefText"))
		wSetData(&opt.bText, TranslateTS(szValue));
	else
		SetTextDefault("B");

	if (szValue = db_get_tsa(NULL, WEATHERPROTONAME, "NoteText"))
		wSetData(&opt.nText, TranslateTS(szValue));
	else
		SetTextDefault("N");

	if (szValue = db_get_tsa(NULL, WEATHERPROTONAME, "ExtText"))
		wSetData(&opt.eText, TranslateTS(szValue));
	else
		SetTextDefault("E");

	if (szValue = db_get_tsa(NULL, WEATHERPROTONAME, "HistoryText"))
		wSetData(&opt.hText, TranslateTS(szValue));
	else
		SetTextDefault("H");

	if (szValue = db_get_tsa(NULL, WEATHERPROTONAME, "ExtraText"))
		wSetData(&opt.xText, TranslateTS(szValue));
	else
		SetTextDefault("X");

	if (szValue = db_get_tsa(NULL, WEATHERPROTONAME, "StatusText"))
		wSetData(&opt.sText, TranslateTS(szValue));
	else
		SetTextDefault("S");

	// advanced
	opt.DisCondIcon = db_get_b(NULL, WEATHERPROTONAME, "DisableConditionIcon", false);
	// popup options
	opt.UsePopup = db_get_b(NULL, WEATHERPROTONAME, "UsePopUp", true);
	opt.UpdatePopup = db_get_b(NULL, WEATHERPROTONAME, "UpdatePopup", true);
	opt.AlertPopup = db_get_b(NULL, WEATHERPROTONAME, "AlertPopup", true);
	opt.PopupOnChange = db_get_b(NULL, WEATHERPROTONAME, "PopUpOnChange", true);
	opt.ShowWarnings = db_get_b(NULL, WEATHERPROTONAME, "ShowWarnings", true);
	// popup colors
	opt.BGColour = db_get_dw(NULL, WEATHERPROTONAME, "BackgroundColour", GetSysColor(COLOR_BTNFACE));
	opt.TextColour = db_get_dw(NULL, WEATHERPROTONAME, "TextColour", GetSysColor(COLOR_WINDOWTEXT));
	opt.UseWinColors = (BOOL)db_get_b(NULL, WEATHERPROTONAME, "UseWinColors", false);
	// popup actions
	opt.LeftClickAction = db_get_dw(NULL, WEATHERPROTONAME, "LeftClickAction", IDM_M2);
	opt.RightClickAction = db_get_dw(NULL, WEATHERPROTONAME, "RightClickAction", IDM_M1);
	// popup delay
	opt.pDelay = db_get_dw(NULL, WEATHERPROTONAME, "PopupDelay", 0);
	// popup texts
	if (szValue = db_get_tsa(NULL, WEATHERPROTONAME, "PopupTitle"))
		wSetData(&opt.pTitle, szValue);
	else
		SetTextDefault("P");

	if (szValue = db_get_tsa(NULL, WEATHERPROTONAME, "PopupText"))
		wSetData(&opt.pText, szValue);
	else
		SetTextDefault("p");

	// misc
	if (szValue = db_get_tsa(NULL, WEATHERPROTONAME, "Default"))
		_tcsncpy_s(opt.Default, szValue, _TRUNCATE);
	else
		opt.Default[0] = 0;
}
Ejemplo n.º 23
0
void CVkProto::OnReceiveFriends(NETLIBHTTPREQUEST *reply, AsyncHttpRequest *pReq)
{
	debugLogA("CVkProto::OnReceiveFriends %d", reply->resultCode);
	if (reply->resultCode != 200)
		return;

	JSONROOT pRoot;
	JSONNODE *pResponse = CheckJsonResponse(pReq, reply, pRoot), *pInfo;
	if (pResponse == NULL)
		return;

	bool bCleanContacts = getByte("AutoClean", 0) != 0;
	LIST<void> arContacts(10, PtrKeySortT);
	if (bCleanContacts)
		for (MCONTACT hContact = db_find_first(m_szModuleName); hContact; hContact = db_find_next(hContact, m_szModuleName))
			if (!isChatRoom(hContact))
				arContacts.insert((HANDLE)hContact);

	for (int i = 0; (pInfo = json_at(pResponse, i)) != NULL; i++) {
		ptrT szValue(json_as_string(json_get(pInfo, "uid")));
		if (szValue == NULL)
			continue;

		CMString tszNick;
		MCONTACT hContact = FindUser(_ttoi(szValue), true);
		arContacts.remove((HANDLE)hContact);
		szValue = json_as_string(json_get(pInfo, "first_name"));
		if (szValue) {
			setTString(hContact, "FirstName", szValue);

			tszNick.Append(szValue);
			tszNick.AppendChar(' ');
		}

		if (szValue = json_as_string(json_get(pInfo, "last_name"))) {
			setTString(hContact, "LastName", szValue);
			tszNick.Append(szValue);
		}

		if (!tszNick.IsEmpty())
			setTString(hContact, "Nick", tszNick);

		szValue = json_as_string(json_get(pInfo, "photo_medium"));
		SetAvatarUrl(hContact, szValue);

		setWord(hContact, "Status", (json_as_int(json_get(pInfo, "online")) == 0) ? ID_STATUS_OFFLINE : ID_STATUS_ONLINE);

		int iValue = json_as_int(json_get(pInfo, "sex"));
		if (iValue)
			setByte(hContact, "Gender", (iValue == 2) ? 'M' : 'F');

		if ((iValue = json_as_int(json_get(pInfo, "timezone"))) != 0)
			setByte(hContact, "Timezone", iValue * -2);

		szValue = json_as_string(json_get(pInfo, "mobile_phone"));
		if (szValue && *szValue)
			setTString(hContact, "Cellular", szValue);
		szValue = json_as_string(json_get(pInfo, "home_phone"));
		if (szValue && *szValue)
			setTString(hContact, "Phone", szValue);
	}

	if (bCleanContacts)
		for (int i = 0; i < arContacts.getCount(); i++)
			CallService(MS_DB_CONTACT_DELETE, (WPARAM)arContacts[i], 0);
}
Ejemplo n.º 24
0
static INT_PTR CALLBACK JabberSearchAdvancedDlgProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
	JabberSearchData* dat = (JabberSearchData*)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
	switch (msg) {
	case WM_INITDIALOG:
		TranslateDialogDefault(hwndDlg);
		{
			dat = (JabberSearchData *)mir_calloc(sizeof(JabberSearchData));
			dat->ppro = (CJabberProto*)lParam;
			SetWindowLongPtr(hwndDlg, GWLP_USERDATA, (LONG_PTR)dat);

			/* Server Combo box */
			ptrA jud(dat->ppro->getStringA("Jud"));
			char *szServerName = (jud == NULL) ? "users.jabber.org": jud;
			SetDlgItemTextA(hwndDlg,IDC_SERVER,szServerName);
			SendDlgItemMessageA(hwndDlg,IDC_SERVER,CB_ADDSTRING,0,(LPARAM)szServerName);
			//TO DO: Add Transports here
			int i, transpCount = dat->ppro->m_lstTransports.getCount();
			for (i=0; i < transpCount; i++) {
				TCHAR *szTransp = dat->ppro->m_lstTransports[i];
				if (szTransp)
					JabberSearchAddUrlToRecentCombo(hwndDlg, szTransp);
			}

			for (i=0; i < 10; i++) {
				char key[30];
				mir_snprintf(key, SIZEOF(key), "RecentlySearched_%d", i);
				ptrT szValue( dat->ppro->getTStringA(key));
				if (szValue != NULL)
					JabberSearchAddUrlToRecentCombo(hwndDlg, szValue);
			}

			//TO DO: Add 4 recently used
			dat->lastRequestIq = dat->ppro->SearchRenewFields(hwndDlg,dat);
		}
		return TRUE;

	case WM_COMMAND:
		if (LOWORD(wParam) == IDC_SERVER) {
			switch (HIWORD(wParam)) {
			case CBN_SETFOCUS:
				PostMessage(GetParent(hwndDlg),WM_COMMAND, MAKEWPARAM(0,EN_SETFOCUS), (LPARAM)hwndDlg);
				return TRUE;

			case CBN_EDITCHANGE:
				EnableWindow(GetDlgItem(hwndDlg, IDC_GO),TRUE);
				return TRUE;

			case CBN_EDITUPDATE:
				JabberSearchFreeData(hwndDlg, dat);
				EnableWindow(GetDlgItem(hwndDlg, IDC_GO),TRUE);
				return TRUE;

			case CBN_SELENDOK:
				EnableWindow(GetDlgItem(hwndDlg, IDC_GO),TRUE);
				PostMessage(hwndDlg,WM_COMMAND,MAKEWPARAM(IDC_GO,BN_CLICKED),0);
				return TRUE;
			}
		}
		else if (LOWORD(wParam) == IDC_GO && HIWORD(wParam) == BN_CLICKED) {
			dat->ppro->SearchRenewFields(hwndDlg, dat);
			return TRUE;
		}
		break;

	case WM_SIZE:
		{
			//Resize IDC_FRAME to take full size
			RECT rcForm;
			GetWindowRect(hwndDlg,  &rcForm);
			RECT rcFrame;
			GetWindowRect(GetDlgItem(hwndDlg, IDC_FRAME), &rcFrame);
			rcFrame.bottom = rcForm.bottom;
			SetWindowPos(GetDlgItem(hwndDlg,IDC_FRAME),NULL,0,0,rcFrame.right-rcFrame.left,rcFrame.bottom-rcFrame.top,SWP_NOZORDER|SWP_NOMOVE);
			GetWindowRect(GetDlgItem(hwndDlg,IDC_VSCROLL), &rcForm);
			SetWindowPos(GetDlgItem(hwndDlg,IDC_VSCROLL),NULL,0,0,rcForm.right-rcForm.left,rcFrame.bottom-rcFrame.top,SWP_NOZORDER|SWP_NOMOVE);
			JabberSearchRefreshFrameScroll(hwndDlg, dat);
		}
		return TRUE;

	case WM_USER+11:
		{
			dat->fSearchRequestIsXForm=TRUE;
			dat->xNode = (HXML)wParam;
			JabberFormCreateUI(GetDlgItem(hwndDlg, IDC_FRAME), dat->xNode, &dat->CurrentHeight,TRUE);
			ShowWindow(GetDlgItem(hwndDlg, IDC_FRAME), SW_SHOW);
			dat->nJSInfCount=1;
			return TRUE;
		}
	case WM_USER+10:
		{
			Data* MyDat = (Data*)lParam;
			if (MyDat) {
				dat->fSearchRequestIsXForm = (BOOL)wParam;
				dat->CurrentHeight = JabberSearchAddField(hwndDlg,MyDat);
				mir_free(MyDat->Label);
				mir_free(MyDat->Var);
				mir_free(MyDat->defValue);
				free(MyDat);
			}
			else
			{
				JabberSearchRefreshFrameScroll(hwndDlg,dat);
				ScrollWindow(GetDlgItem(hwndDlg, IDC_FRAME), 0, dat->curPos - 0, NULL,  &(dat->frameRect));
				SetScrollPos(GetDlgItem(hwndDlg, IDC_VSCROLL), SB_CTL, 0, FALSE);
				dat->curPos=0;
			}
			return TRUE;
		}
	case WM_MOUSEWHEEL:
		{
			int zDelta = GET_WHEEL_DELTA_WPARAM(wParam);
			if (zDelta) {
				int nScrollLines=0;
				SystemParametersInfo(SPI_GETWHEELSCROLLLINES,0,(void*)&nScrollLines,0);
				for (int i=0; i<(nScrollLines+1)/2; i++)
					SendMessage(hwndDlg,WM_VSCROLL, (zDelta<0)?SB_LINEDOWN:SB_LINEUP,0);
		}	}
		return TRUE;

	case WM_VSCROLL:
		{
			int pos;
			if (dat != NULL) {
				pos = dat->curPos;
				switch (LOWORD(wParam)) {
				case SB_LINEDOWN:
					pos += 10;
					break;
				case SB_LINEUP:
					pos -= 10;
					break;
				case SB_PAGEDOWN:
					pos += (dat->CurrentHeight - 10);
					break;
				case SB_PAGEUP:
					pos -= (dat->CurrentHeight - 10);
					break;
				case SB_THUMBTRACK:
					pos = HIWORD(wParam);
					break;
				}
				if (pos > (dat->CurrentHeight - dat->frameHeight))
					pos = dat->CurrentHeight - dat->frameHeight;
				if (pos < 0)
					pos = 0;
				if (dat->curPos != pos) {
					ScrollWindow(GetDlgItem(hwndDlg, IDC_FRAME), 0, dat->curPos - pos, NULL ,  &(dat->frameRect));
					SetScrollPos(GetDlgItem(hwndDlg, IDC_VSCROLL), SB_CTL, pos, TRUE);
					RECT Invalid=dat->frameRect;
					if (dat->curPos - pos >0)
						Invalid.bottom=Invalid.top+(dat->curPos - pos);
					else
						Invalid.top=Invalid.bottom+(dat->curPos - pos);

					RedrawWindow(GetDlgItem(hwndDlg, IDC_FRAME), NULL, NULL, RDW_UPDATENOW |RDW_ALLCHILDREN);
					dat->curPos = pos;
		}	}	}
		return TRUE;

	case WM_DESTROY:
		JabberSearchFreeData(hwndDlg, dat);
		JabberFormDestroyUI(GetDlgItem(hwndDlg, IDC_FRAME));
		mir_free(dat);
		SetWindowLongPtr(hwndDlg, GWLP_USERDATA, 0);
		return TRUE;
	}
	return FALSE;
}
Ejemplo n.º 25
0
static void ProcessUserCmd(
    CGT_CDiagMsg*        pdm,     //for err msg
    ICG_IECFront*        pIF,     
    const CG_AttribList* pAttr,    
    const CGT_CInstPath& ipath, 
    CGT_CDmp&            dmp,
    const CG_Symtab*     pSym,   //Prg,FB 
    const CG_Resource*   pRes   //calling res.
)                           
{
    TCHAR               buffer[2*MAX_PATH];
    TCHAR*              pszField[4];
    int                 nUserCmd = 0;
    const CG_DType*     pType;
    int                 n;
    CG_Edipos           edptmp;
    bool                bGlobal;

    if(!pAttr)
        return;

    //usercmd= "Reset TMPC 14|iFileNumber|13"
    for(n = 0; n<pAttr->nAttribs; n++) //TODO diag msg, chsck var path and value ....
    {
        if(_tcsicmp(pAttr->pairs[n].pszKey, _T("usercmd")))
            continue;

        edptmp = pAttr->pairs[n].edpVal;
        if(!FC_StringCopyToBuffer(buffer, FC_ARRAY_LEN(buffer), pAttr->pairs[n].pszVal))
        {
            pdm->msg1(CG_E_ATTR_VALUE_TO_LONG, &edptmp, "256");
            continue;
        }
        if(FC_StringSplitBuf(buffer,'|', pszField, 4, 1) != 3)
        {
            pdm->msg1(CG_E_TEXT, &edptmp, _T("usercmd: invalid menue description format"));
            pdm->userMsg(_T("    expeted: usercmd=\"<menue text>|<var path>|<literal value>\"\n"));
            continue;
        }

        CG_IncColEdipos(&edptmp, pszField[1] - buffer + 1); //+1 for attrip string start delim
        pType = CGT_ParseAccessPath(pdm, &edptmp, pIF, pszField[1], pSym, pRes, &bGlobal);

        if(!pType)
            continue;
        if(pType->pSym || pType->bIsArray)
        {
            pdm->msg1(CG_E_TEXT, &edptmp, pdm->jot1()<<
                _T("usercmd: '"<<pszField[1]<<"' points to non simple data type '")<<pType->pszName<<'\'');
            continue;
        }

         //if string type use pszField[2] as is, if non string parse the value 
        //using the front end:
        FC_CString szValue(256);
        if(pType->type==CG_WSTRING || pType->type==CG_STRING)
        {
            szValue.load(pszField[2]);
        }
        else
        {
            CG_IncColEdipos(&edptmp, pszField[2] - pszField[1]);
            ICG_Expr* pValExpr = pIF->parseExprFromString(&edptmp, true, pszField[2], pSym?pSym->pszId:NULL, false);
            if(!pValExpr)
                continue;
            const CG_ExprTree* pLit = pValExpr->getExpr(pType->type);
            if(!pLit)
            {
                pdm->msg1(CG_E_TEXT, &edptmp, pdm->jot1()<<_T("usercmd: '"<<pszField[2]<<"' must be of datatype "<<pType->pszName));
                pValExpr->Release();
                continue;
            }
            else if(pLit->extyp != CG_LITERAL)
            {
                pdm->msg1(CG_E_TEXT, &edptmp, pdm->jot1()<<_T("usercmd: '"<<pszField[2]<<"' does not evaluate to a simple type literal"));
                pValExpr->Release();
                continue;
            }
            szValue.load(pLit->lit.pLit->psz);
            pValExpr->Release();
        }                
       
        dmp<<_T("\n      USER_ONLCMD")<<nUserCmd<<_T("=\"");
        dmp.dumpAsXMLUTF8(pszField[0], false)<<'|';
        
        if(bGlobal)
        {
            //add pc1.Resource1
            for(const TCHAR* psz=ipath; *psz && *psz!='.'; psz++)
                dmp<<*psz;
            dmp<<'.';
            for(psz++; *psz && *psz!='.'; psz++)
                dmp<<*psz;

            dmp<<'.'<<pszField[1];
        }
        else
        { 
            //start with FB instance path:
            dmp<<ipath<<'.'<<pszField[1];
        }

        dmp<<'|'<<pType->pszName<<'|';
        dmp.dumpAsXMLUTF8(szValue, false)<<'"';    

        nUserCmd++;
    }
}