Пример #1
0
bool
ZXmlParser::SetTextValue( LPCTSTR TextValue )
{
   // Nodes members
   // IXMLDOMElementPtr m_CurrentNode;        /* Global Member */
   IXMLDOMNodePtr newNode;

   // Find if a CHILD TEXT NODE exist or not
   if ( m_CurrentNode == NULL )
   {
      if ( m_pDocRoot )
         m_CurrentNode = m_pDocRoot;
      else
      {
         m_LastError = "ZXmlParser::SetTextValue( LPCTSTR )   : Can't set a Text on a NULL Node";
         return( false );
      }
   }

   if ( IsMSXML_Node( m_CurrentNode ) == NODE_CDATA_SECTION )
   {
     CComVariant sValue( TextValue );
     m_CurrentNode->put_nodeValue( sValue );

     return( true );
   }

   // Rq: a NODE_CDATA_SECTION can't have any childs
   if ( m_CurrentNode->hasChildNodes( ) )
   {
      IXMLDOMNodePtr pChild;
      for( pChild = m_CurrentNode->firstChild; pChild; pChild = pChild->nextSibling )
      {
         // Find it's a NODE TEXT
         if ( IsMSXML_Node( pChild ) == NODE_TEXT )
         {
            // A Text Node is found, Replace it now!!
            CComVariant sValue( TextValue );
            pChild->put_nodeValue( sValue );

            return( true );
         }
      }
   }

   // No previous Text was defined before, we can add it.
   if ( IsMSXML_Node( m_CurrentNode ) == NODE_ELEMENT )
   {
      // Create NODE TEXT type
      CComVariant vType( MSXML2::NODE_TEXT );

      // Create the node
      newNode = m_plDomDocument->createTextNode( TextValue );

      // Attach the Node to the document
      newNode = m_CurrentNode->appendChild( newNode );
   }

   return( true );
}
Пример #2
0
/*!
    Generate a value given an integer, using formatting defined within this class.
    The formatting mainly applies if formatting as a string. For example, was is
    the number base? should a sign always be included? are leading zeros requried?
    The formatting could include properties related to other types. For example, generate
    an error if attempting to convert a negative integer to an unsigned integer.
*/
QVariant QCaIntegerFormatting::formatValue( const long &integerValue, generic::generic_types valueType ) {
    switch( valueType ) {
        case generic::DOUBLE :
        {
            QVariant dValue( (double)integerValue );
            return dValue;
        }
        case generic::UNSIGNED_LONG :
        {
            qulonglong unsignedIntegerValue;
            ( integerValue < 0 ) ? unsignedIntegerValue=0 : unsignedIntegerValue=integerValue;
            QVariant ulValue( unsignedIntegerValue );
            return ulValue;
        }
        case generic::STRING :
        {
            QString string = QString::number( integerValue, radix);
            QVariant sValue( string );
            return sValue;
        }
        case generic::UNKNOWN :
        {
        }
        default :
        {
            //qDebug() << "QCaIntegerFormatting::formatValue() Unknown value 'Generic' type: " << valueType;
            QVariant unknown;
            return unknown;
        }
    }
    //qDebug() << "QCaIntegerFormatting::formatValue() Unknown value 'Generic' type: " << valueType;
    QVariant unknown;
    return unknown;
}
Пример #3
0
	/**
	@brief Get a parsed value from the config file
	@param cName The name of the variable in the config file
	@param n The position of the value in a multivalue field.
	For "MyArray 10 56 38 52 46;",  GetValue<int>("MyArray", 3) will return 52. (the first value is at n=0)
	**/
    T GetValue(const char* cName, int n=0)const
	{
		std::string sValue(GetStringValue(cName)+" ");
		std::string sCurrValue;

		int nPos=0;
		for(unsigned int i=0 ; i<sValue.size() ; i++)
		{
			if(sValue[i]!=' ' && sValue[i]!='\t')
			{
				sCurrValue+=sValue[i];
			}
			else
			{
				if(nPos==n)
				{
					std::stringstream ss(sCurrValue);
					T a;
					ss>>a;
					return a;
				}
				else
				{
					sCurrValue="";
					nPos++;
				}
			}
Пример #4
0
	bool CDatabase::UpdateDictValue(std::string sKey,int nValue)
	{
// 		CString sValue;
// 		sValue.Format(_T("%d"),nValue);
		char buf[100]={0};
		_itoa_s(nValue,buf,100,10);
		std::string sValue(buf);
		return UpdateDictValue(sKey,sValue);
	}
Пример #5
0
void	facts_parsing(bool value)
{
  std::string	sValue(value ? "true" : "false");
  if (!g_vm.count(sValue))
    return;
  StringVector	sv = g_vm[sValue].as<StringVector>();
  for (StringVector::iterator it = sv.begin(), end = sv.end();
       it != end; ++it)
    prepare_fact(*it, sValue);
}
Пример #6
0
// 因版本兼容问题,本函数暂只针对COOKIE和URL做最弱过滤
const std::string CTrans::CTOH(char cValue)
{
	static char MAPX[16] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
	if ((cValue >= 0 && cValue <= '\40') || cValue==';' || cValue=='=' || cValue=='%' || cValue=='?' || cValue=='&')
	{
		std::string sValue("%");
		sValue += MAPX[(unsigned char)cValue>>4];
		sValue += MAPX[cValue&0x0F];
		return sValue;
	}
Пример #7
0
std::string CTableCompareStream::BuildWhereClauseForKeys( const XMySQL::CResultSet &rs )
{
	// Build a stream of all our keyed name=value column value pairs
	std::stringstream streamFields;
	streamFields << _T(" WHERE ");

	UINT uFieldAddedCount = 0;
	const UINT uFieldCount = rs.GetFieldCount();
	for( UINT u = 0; u < uFieldCount; u++ )
	{
		const bool bIsPrimaryKey = rs.IsFieldPrimaryKey( u );
		const bool bIsUniqueKey = rs.IsFieldUniqueKey( u );

		if( bIsPrimaryKey || bIsUniqueKey )
		{
			const UINT uFieldType = rs.GetFieldType( u );

			if( uFieldAddedCount )
			{
				streamFields << _T(" AND ");
			}

			streamFields << rs.GetFieldName( u );
			streamFields << _T("=");
			if( rs.IsNull( u ) )
			{
				streamFields << _T("NULL");
			}
			else
			{
				const char * pcszFieldValue = rs.GetFieldValue( u );

				streamFields << _T("'");
				if( uFieldType == MYSQL_TYPE_STRING || uFieldType == MYSQL_TYPE_VAR_STRING || uFieldType == MYSQL_TYPE_VARCHAR || uFieldType == MYSQL_TYPE_BLOB )
				{
					std::string sValue( pcszFieldValue );
					m_mySource.EscapeString( sValue );
					streamFields << sValue;
				}
				else
				{
					streamFields << pcszFieldValue;
				}
				streamFields << _T("'");
			}

			uFieldAddedCount++;
		}
	}

	return streamFields.str();
}
void CModelReaderNode093_Object::OnAttribute(_In_z_ const nfWChar * pAttributeName, _In_z_ const nfWChar * pAttributeValue)
{
    __NMRASSERT(pAttributeName);
    __NMRASSERT(pAttributeValue);

    if (wcscmp(pAttributeName, XML_3MF_ATTRIBUTE_OBJECT_ID) == 0) {
        if (m_nID != 0)
            throw CNMRException(NMR_ERROR_DUPLICATEOBJECTID);

        // Convert to integer and make a input and range check!
        m_nID = fnWStringToUint32(pAttributeValue);

        // Increase ID to avoid 0 (was allowed for 0.9.3)
        m_nID++;
    }

    if (wcscmp(pAttributeName, XML_3MF_ATTRIBUTE_OBJECT_TYPE) == 0) {
        if (m_bHasType)
            throw CNMRException(NMR_ERROR_DUPLICATEOBJECTTYPE);

        // Convert to integer and make a input and range check!
        std::wstring sString(pAttributeValue);
        m_sType = sString;
        m_bHasType = true;
    }

    if (wcscmp(pAttributeName, XML_3MF_ATTRIBUTE_OBJECT_NAME) == 0) {
        std::wstring sValue(pAttributeValue);
        m_sName = sValue;
    }

    if (wcscmp(pAttributeName, XML_3MF_ATTRIBUTE_TRIANGLE_COLORID) == 0) {

        nfInt32 nValue = fnWStringToInt32(pAttributeValue);
        if ((nValue >= 0) && (nValue < XML_3MF_MAXRESOURCEINDEX)) {
            m_nColorID = nValue + 1;
        }
    }

    if (wcscmp(pAttributeName, XML_3MF_ATTRIBUTE_TRIANGLE_MATERIALID) == 0) {
        nfInt32 nValue = fnWStringToInt32(pAttributeValue);
        if ((nValue >= 0) && (nValue < XML_3MF_MAXRESOURCEINDEX))
            m_nMaterialID = nValue + 1;
    }


}
Пример #9
0
void __fastcall TMinosChatForm::SendButtonClick( TObject */*Sender*/ )
{
   // We need to send the message to all connected stations
   for ( std::vector<Server>::iterator i = serverList.begin(); i != serverList.end(); i++ )
   {
      RPCChatControlClient rpc( 0 );
      boost::shared_ptr<RPCParam>st(new RPCParamStruct);
      boost::shared_ptr<RPCParam>sName(new RPCStringParam( "SendChatMessage" ));
      boost::shared_ptr<RPCParam>sValue(new RPCStringParam( ChatEdit->Text.c_str() ));
      st->addMember( sName, "Name" );
      st->addMember( sValue, "Value" );
      rpc.getCallArgs() ->addParam( st );
      rpc.queueCall( "chat@" + ( (*i).name ) );
   }
   ChatEdit->Text = ""; // otherwise it is a pain!
   ActiveControl = ChatEdit;
}
Пример #10
0
std::string CTableCompareStream::BuildWhereClauseForKeys( const CTableCompareABC::Record &rec )
{
	// Build a stream of all our keyed name=value column value pairs
	std::stringstream streamFields;
	streamFields << _T(" WHERE ");
	UINT uFieldAddedCount = 0;
	for( UINT u = 0; u < rec.arrFields.size(); u++ )
	{
		const CTableCompareABC::Field &fld = rec.arrFields.at( u );
		if( fld.bIsPrimaryKey || fld.bIsUniqueKey )
		{
			if( uFieldAddedCount )
			{
				streamFields << _T(" AND ");
			}

			streamFields << fld.strName;
			streamFields << _T("=");
			if( fld.bIsNull )
			{
				streamFields << _T("NULL");
			}
			else
			{
				streamFields << _T("'");
				if( fld.uType == MYSQL_TYPE_STRING || fld.uType == MYSQL_TYPE_VAR_STRING || fld.uType == MYSQL_TYPE_VARCHAR || fld.uType == MYSQL_TYPE_BLOB )
				{
					std::string sValue( fld.strValue );
					m_mySource.EscapeString( sValue );
					streamFields << sValue;
				}
				else
				{
					streamFields << fld.strValue;
				}
				streamFields << _T("'");
			}

			uFieldAddedCount++;
		}
	}

	return streamFields.str();
}
Пример #11
0
std::string CTableCompareStream::BuildDifferentFieldValues( const CTableCompareABC::Record &rec )
{
	// Build a stream of all our name=value column value pairs
	std::stringstream streamFields;
	for( UINT u = 1; u < rec.arrFields.size(); u++ )	// first field is always KeyHash field so skip past it
	{
		const CTableCompareABC::Field &fld = rec.arrFields.at( u );
		if( !fld.bIsDifferent )
		{
			continue;
		}

		if( streamFields.str().size() )
		{
			streamFields << _T(",");
		}

		streamFields << fld.strName;
		streamFields << _T("=");
		if( fld.bIsNull )
		{
			streamFields << _T("NULL");
		}
		else
		{
			streamFields << _T("'");
			if( fld.uType == MYSQL_TYPE_STRING || fld.uType == MYSQL_TYPE_VAR_STRING || fld.uType == MYSQL_TYPE_VARCHAR || fld.uType == MYSQL_TYPE_BLOB )
			{
				std::string sValue( fld.strValue );
				m_mySource.EscapeString( sValue );
				streamFields << sValue;
			}
			else
			{
				streamFields << fld.strValue;
			}
			streamFields << _T("'");
		}
	}

	return streamFields.str();
}
	void CModelReaderNode093_Color::OnAttribute(_In_z_ const nfWChar * pAttributeName, _In_z_ const nfWChar * pAttributeValue)
	{
		__NMRASSERT(pAttributeName);
		__NMRASSERT(pAttributeValue);

		if (wcscmp(pAttributeName, XML_3MF_ATTRIBUTE_COLOR_VALUE) == 0) {
			std::wstring sValue(pAttributeValue);
			m_sColorString = sValue;
		}

		if (wcscmp(pAttributeName, XML_3MF_ATTRIBUTE_COLOR_ID) == 0) {
			if (m_nResourceID != 0)
				throw CNMRException(NMR_ERROR_DUPLICATECOLORID);

			// Convert to integer and make a input and range check!
			m_nResourceID = fnWStringToUint32(pAttributeValue);
			m_nResourceID++;
		}

	}
Пример #13
0
CStdString RegUtils::GetStringValueFromRegistry(const HKEY& hKey, const CStdString& sValueName)
{
	_variant_t vtValue;

	if (!GetValueFromRegistry(hKey, sValueName, vtValue))
	{
		LOG_WS_ERROR(_T("Unable to get value from registry"));
		return _T("");
	}

	if (vtValue.vt != VT_BSTR)
	{
		LOG_WS_ERROR(_T("Unexpected type returned from the registry"));
		return _T("");
	}

	CStdString sValue(vtValue.bstrVal);

	return sValue;
}
Пример #14
0
//按照给定的格式将制定的值格式化为字符串
string CCardField::FormatValue(string value) const
{
	if(value.empty())
		return value;

	int nWid = nEnd - nStart + 1;//字段宽度(字符数)
	if(sFormat.empty())
	{
		if(value.size() > nWid)
			value = value.substr(0,nWid);
		return value;
	}

	string sTp = sFormat.substr(1,sFormat.size()-1);
	char buffer[255];
	string sFor = GetFormatString();
	if (sFormat[0] == 'I')//I2
	{
		int iVal = std::atoi(value.c_str());
		if(iVal == 0)
			return "";//如果实例值是0,返回""
		else
			sprintf(buffer, sFor.c_str(), iVal);
	}
	else if (sFormat[0] == 'F')//F4.3
	{
		double bVal = std::atof(value.c_str());
		if (bVal > -0.000001f && bVal < 0.000001f)
			return "";//如果实例值是0,返回""
		else
			sprintf(buffer, sFor.c_str(), bVal);
	}
	else if (sFormat[0] == 'A')//A4
	{
		sprintf(buffer, sFor.c_str(), value.c_str());
	}
	string sValue(buffer);
	if(sValue.size() > nWid)
		sValue = sValue.substr(0,nWid);
	return sValue;
}
Пример #15
0
string TrackerConfig::getParam(const string& sXPathExpr) const
{
    xmlXPathObjectPtr xpElement = findConfigNodes(sXPathExpr);
    xmlNodeSetPtr nodes = xpElement->nodesetval;
    
    if (!nodes || nodes->nodeNr == 0) {
        throw (Exception(AVG_ERR_OPTION_UNKNOWN, 
                    string("getParam(): cannot find requested element ")+sXPathExpr));
    } else if (nodes->nodeNr > 1) {
        AVG_LOG_WARNING(
            "getParam(): expression selects more than one node. Returning the first.");
    }

    xmlChar* xsRc = xmlNodeGetContent(nodes->nodeTab[0]);
    string sValue((char *)xsRc);
    
    xmlFree(xsRc);
    xmlXPathFreeObject(xpElement);

    return sValue;
}
Пример #16
0
bool set_chanel_freq_rate (uint8_t channel, uint8_t band,uint8_t bitrate){

  printf("Channel amoutn %d, chanel %d",chanelAmount(band, bitrate),channel);
  if (channel >= chanelAmount(band, bitrate)) {
    //errstate invalid_chanel_freq_rate;
    return false;
  }

  //Program registers R, P, S and Synthesize the RF
   PHY_STORAGE.channel=channel;
   PHY_STORAGE.band=band;
   PHY_STORAGE.bitrate=bitrate;
   
   
   D_PHY printf("Chanel %d band %d bitrate %d\n", channel, band, bitrate);

  set_register(R1CNTREG, rValue());
  set_register(P1CNTREG, pValue(band, channel, bitrate));
  set_register(S1CNTREG, sValue(band, channel, bitrate));
  
  return true;
}
Пример #17
0
CStdString RegistryUtils::GetStringValueFromRegistry(const HKEY& hKey, const CStdString& sValueName)
{
	if (sValueName.IsEmpty())
	{
		return _T("");
	}

	_variant_t vtValue;

	if (!GetValueFromRegistry(hKey, sValueName, vtValue))
	{
		return _T("");
	}

	if (vtValue.vt != VT_BSTR)
	{
		return _T("");
	}

	CStdString sValue(vtValue.bstrVal);

	return sValue;
}
Пример #18
0
const TCHAR * CXmlParser::ParseTag(CXmlNode& Node, TCHAR * pStart, const TCHAR * pEnd)
{
	while (pStart < pEnd)
	{
		// Ищем начало открывающего тэга
		const TCHAR * itStartTag	= std::find(static_cast< const TCHAR * > (pStart), pEnd, '<');
		const TCHAR * itStartTagName	= std::find_if(itStartTag, pEnd, boost::algorithm::is_alnum());

		// Нашли закрывающий тэг
		if (itStartTag == itStartTagName || *(itStartTag + 1) == '/')
			return std::find(const_cast< const TCHAR * > (pStart), pEnd, '>') + 1;

		// Ищем окончание открывающего тэга
		const TCHAR * itEndOpenTag	= std::find(itStartTag, pEnd, '>');

		// Ищем имя тэга
		const TCHAR * itEndName = std::find_if(itStartTagName, itEndOpenTag, !boost::algorithm::is_alnum());
		_tstring sTagName = _tstring(itStartTagName, itEndName);
		Node.Data[TAG_NAME] = sTagName;

		// Ищем тип тэга (?, <--)
		_tstring sTagType = _tstring(itStartTag + 1, itStartTagName);

		 //Находим все атрибуты тэга
		_tstring sTagData(itStartTagName, itEndOpenTag);
		if (!sTagType.empty())
			// Удаляем тип тэга из строки атрибутов
			boost::algorithm::replace_all(sTagData, sTagType, "");

		GetTagAttributes(Node, sTagData);

	/*if (!sTagType.empty())
		{

			std::find(const_cast< const TCHAR * > (pStart), pEnd, '>') + 1; 
		}*/

		// У тэга нет значения и вложенных тэгов
		if (*(itEndOpenTag - 1) == '/')
		{
			return itEndOpenTag + 1;
		}
		else
		{
			// Ищем вложенные узлы
			pStart = const_cast< TCHAR * > (std::find(itStartTagName, pEnd, '>'));
			while (true)
			{
				// Находим вложенные узлы и добавляем в Childs
				CXmlNode Child;
				pStart = const_cast< TCHAR * > (ParseTag(Child, pStart, pEnd));

				if (!Child.Data.empty())
					Node.Childs.push_back(Child);

				if (pStart >= pEnd)
					break;

				// Ищем закрывающий тэг </tag_name>
				TCHAR * itTagEnd = 0;
				while (true)
				{
					itTagEnd = const_cast< TCHAR * > (std::find(static_cast< const TCHAR * > (pStart), pEnd, '/'));
					if (*(itTagEnd - 1) == '<' || itTagEnd >= pEnd)
						break;
				}
				const TCHAR * itCloseTagNameEnd = std::find(static_cast< const TCHAR * > (itTagEnd), pEnd, '>');
				
				_tstring sCloseTagName;

				if (itTagEnd < itCloseTagNameEnd)
					sCloseTagName.assign(itTagEnd + 1, itCloseTagNameEnd);

				if (!sCloseTagName.empty() && sCloseTagName == sTagName)
				{
					_tstring sValue(pStart, itTagEnd - 1);
					if (!sValue.empty() && sValue != _T("\n"))
						Node.Data[TAG_VALUE] = sValue;
					break;
				}
			}	
		}
	}

	return pEnd;
}
Пример #19
0
// wrapper for ldap_get_values()
//
NS_IMETHODIMP
nsLDAPMessage::GetValues(const char *aAttr, PRUint32 *aCount, 
                         PRUnichar ***aValues)
{
    char **values;
    
#if defined(DEBUG)
    // We only want this being logged for debug builds so as not to affect performance too much.
    PR_LOG(gLDAPLogModule, PR_LOG_DEBUG,
           ("nsLDAPMessage::GetValues(): called with aAttr = '%s'", aAttr));
#endif

    values = ldap_get_values(mConnectionHandle, mMsgHandle, aAttr);

    // bail out if there was a problem
    //
    if (!values) {
        PRInt32 lderrno = ldap_get_lderrno(mConnectionHandle, 0, 0);

        if ( lderrno == LDAP_DECODING_ERROR ) {
            // this may not be an error; it could just be that the 
            // caller has asked for an attribute that doesn't exist.
            //
            PR_LOG(gLDAPLogModule, PR_LOG_WARNING, 
                   ("nsLDAPMessage::GetValues(): ldap_get_values returned "
                    "LDAP_DECODING_ERROR"));
            return NS_ERROR_LDAP_DECODING_ERROR;

        } else if ( lderrno == LDAP_PARAM_ERROR ) {
            NS_ERROR("nsLDAPMessage::GetValues(): internal error: 1");
            return NS_ERROR_UNEXPECTED;

        } else {
            NS_ERROR("nsLDAPMessage::GetValues(): internal error: 2");
            return NS_ERROR_UNEXPECTED;
        }
    }

    // count the values
    //
    PRUint32 numVals = ldap_count_values(values);

    // create an array of the appropriate size
    //
    *aValues = static_cast<PRUnichar **>(nsMemory::Alloc(numVals * sizeof(PRUnichar *)));
    if (!*aValues) {
        ldap_value_free(values);
        return NS_ERROR_OUT_OF_MEMORY;
    }

    // clone the array (except for the trailing NULL entry) using the 
    // shared allocator for XPCOM correctness
    //
    PRUint32 i;
    for ( i = 0 ; i < numVals ; i++ ) {
        nsDependentCString sValue(values[i]);
        if (IsUTF8(sValue))
            (*aValues)[i] = ToNewUnicode(NS_ConvertUTF8toUTF16(sValue));
        else
            (*aValues)[i] = ToNewUnicode(NS_ConvertASCIItoUTF16(sValue));
        if ( ! (*aValues)[i] ) {
            NS_FREE_XPCOM_ALLOCATED_POINTER_ARRAY(i, aValues);
            ldap_value_free(values);
            return NS_ERROR_OUT_OF_MEMORY;
        }
    }

    // now free our value array since we already cloned the values array 
    // to the 'aValues' results array.
    ldap_value_free(values);

    *aCount = numVals;
    return NS_OK;
}
Пример #20
0
ret_ CXMLLoaderActions::LoadDataBlock(CData &Data,
									  const DOMElement *pElement)
{
#ifdef _DEBUG_
	if (!pElement)
		return PARAMETER_NULL | PARAMETER_2;
#endif

	DOMElement *pChild = (DOMElement *)pElement->getFirstChild();

	if (!pChild)
		return XML_LOADER_ERROR;

	auto_xerces_str	wsObject	("v_object");
	auto_xerces_str wsB1		("v_b_1");
	auto_xerces_str wsUB1		("v_ub_1");
	auto_xerces_str wsB2		("v_b_2");
	auto_xerces_str wsUB2		("v_ub_2");
	auto_xerces_str wsB4		("v_b_4");
	auto_xerces_str wsUB4		("v_ub_4");
	auto_xerces_str wsB8		("v_b_8");
	auto_xerces_str wsUB8		("v_ub_8");
	auto_xerces_str wsFB4		("v_fb_4");
	auto_xerces_str wsFB8		("v_fb_8");
	auto_xerces_str	wsString	("v_string");
	auto_xerces_str wsGroup		("v_group");

	auto_xerces_str	wsName		("name");
	auto_xerces_str	wsValue		("value");

	while (pChild)
	{
		if (0 == XMLString::compareString(pChild->getNodeName(), wsObject))
		{
			auto_xerces_str sName	(pChild->getAttribute(wsName));
			auto_xerces_str sValue	(pChild->getAttribute(wsValue));

			if (false_v == Data.Define(sName, (obj_)null_v))
				return XML_LOADER_ERROR;
		}
		else if (0 == XMLString::compareString(pChild->getNodeName(), wsB1))
		{
			auto_xerces_str sName	(pChild->getAttribute(wsName));
			auto_xerces_str sValue	(pChild->getAttribute(wsValue));

			if (0 == strcmp(sValue, SIGN_UNBOUNDED))
			{
				if (false_v == Data.Define(sName, B_1))
					return XML_LOADER_ERROR;
			}
			else
			{
				if (false_v == Data.Define(sName, B_1, (b_4)atoi(sValue)))
					return XML_LOADER_ERROR;
			}

		}
		else if (0 == XMLString::compareString(pChild->getNodeName(), wsUB1))
		{
			auto_xerces_str sName	(pChild->getAttribute(wsName));
			auto_xerces_str sValue	(pChild->getAttribute(wsValue));

			if (0 == strcmp(sValue, SIGN_UNBOUNDED))
			{
				if (false_v == Data.Define(sName, UB_1))
					return XML_LOADER_ERROR;
			}
			else
			{
				if (false_v == Data.Define(sName, UB_1, (b_4)atoi(sValue)))
					return XML_LOADER_ERROR;
			}
		}
		else if (0 == XMLString::compareString(pChild->getNodeName(), wsB2))
		{
			auto_xerces_str sName	(pChild->getAttribute(wsName));
			auto_xerces_str sValue	(pChild->getAttribute(wsValue));

			if (0 == strcmp(sValue, SIGN_UNBOUNDED))
			{
				if (false_v == Data.Define(sName, B_2))
					return XML_LOADER_ERROR;
			}
			else
			{
				if (false_v == Data.Define(sName, B_2, (b_4)atoi(sValue)))
					return XML_LOADER_ERROR;
			}
		}
		else if (0 == XMLString::compareString(pChild->getNodeName(), wsUB2))
		{
			auto_xerces_str sName	(pChild->getAttribute(wsName));
			auto_xerces_str sValue	(pChild->getAttribute(wsValue));

			if (0 == strcmp(sValue, SIGN_UNBOUNDED))
			{
				if (false_v == Data.Define(sName, UB_2))
					return XML_LOADER_ERROR;
			}
			else
			{
				if (false_v == Data.Define(sName, UB_2, (b_4)atoi(sValue)))
					return XML_LOADER_ERROR;
			}
		}
		else if (0 == XMLString::compareString(pChild->getNodeName(), wsB4))
		{
			auto_xerces_str sName	(pChild->getAttribute(wsName));
			auto_xerces_str sValue	(pChild->getAttribute(wsValue));

			if (0 == strcmp(sValue, SIGN_UNBOUNDED))
			{
				if (false_v == Data.Define(sName, B_4))
					return XML_LOADER_ERROR;
			}
			else
			{
				if (false_v == Data.Define(sName, B_4, (b_4)atoi(sValue)))
					return XML_LOADER_ERROR;
			}
		}
		else if (0 == XMLString::compareString(pChild->getNodeName(), wsUB4))
		{
			auto_xerces_str sName	(pChild->getAttribute(wsName));
			auto_xerces_str sValue	(pChild->getAttribute(wsValue));

			if (0 == strcmp(sValue, SIGN_UNBOUNDED))
			{
				if (false_v == Data.Define(sName, UB_4))
					return XML_LOADER_ERROR;
			}
			else
			{
				if (false_v == Data.Define(sName, UB_4, (b_4)atoi(sValue)))
					return XML_LOADER_ERROR;
			}
		}
		else if (0 == XMLString::compareString(pChild->getNodeName(), wsB8))
		{
			auto_xerces_str sName	(pChild->getAttribute(wsName));
			auto_xerces_str sValue	(pChild->getAttribute(wsValue));

			if (0 == strcmp(sValue, SIGN_UNBOUNDED))
			{
				if (false_v == Data.Define(sName, B_8))
					return XML_LOADER_ERROR;
			}
			else
			{
				if (false_v == Data.Define(sName, B_8, (b_8)atoll(sValue)))
					return XML_LOADER_ERROR;
			}
		}
		else if (0 == XMLString::compareString(pChild->getNodeName(), wsUB8))
		{
			auto_xerces_str sName	(pChild->getAttribute(wsName));
			auto_xerces_str sValue	(pChild->getAttribute(wsValue));

			if (0 == strcmp(sValue, SIGN_UNBOUNDED))
			{
				if (false_v == Data.Define(sName, UB_8))
					return XML_LOADER_ERROR;
			}
			else
			{
				if (false_v == Data.Define(sName, UB_8, (ub_8)atoll(sValue)))
					return XML_LOADER_ERROR;
			}
		}
		else if (0 == XMLString::compareString(pChild->getNodeName(), wsFB4))
		{
			auto_xerces_str sName	(pChild->getAttribute(wsName));
			auto_xerces_str sValue	(pChild->getAttribute(wsValue));

			if (0 == strcmp(sValue, SIGN_UNBOUNDED))
			{
				if (false_v == Data.Define(sName, FB_4))
					return XML_LOADER_ERROR;
			}
			else
			{
				if (false_v == Data.Define(sName, (fb_4)atof(sValue)))
					return XML_LOADER_ERROR;
			}
		}
		else if (0 == XMLString::compareString(pChild->getNodeName(), wsFB8))
		{
			auto_xerces_str sName	(pChild->getAttribute(wsName));
			auto_xerces_str sValue	(pChild->getAttribute(wsValue));

			if (0 == strcmp(sValue, SIGN_UNBOUNDED))
			{
				if (false_v == Data.Define(sName, FB_8))
					return XML_LOADER_ERROR;
			}
			else
			{
				if (false_v == Data.Define(sName, (fb_8)atof(sValue)))
					return XML_LOADER_ERROR;
			}
		}
		else if (0 == XMLString::compareString(pChild->getNodeName(), wsString))
		{
			auto_xerces_str sName	(pChild->getAttribute(wsName));
			auto_xerces_str sValue	(pChild->getAttribute(wsValue));

			if (0 == strcmp(sValue, SIGN_UNBOUNDED))
			{
				if (false_v == Data.Define(sName, (ch_1 *)""))
					return XML_LOADER_ERROR;
			}
			else
			{
				if (false_v == Data.Define(sName, sValue))
					return XML_LOADER_ERROR;
			}
		}
		else if (0 == XMLString::compareString(pChild->getNodeName(), wsGroup))
		{
			auto_xerces_str wsNormal("normal");
			auto_xerces_str wsFloat	("float");
			auto_xerces_str wsString("string");

			auto_xerces_str	wsName	("name");
			auto_xerces_str	wsLength("length");
			auto_xerces_str	wsSigned("signed");
			auto_xerces_str	wsSize	("size");

			auto_xerces_str sName	(pChild->getAttribute(wsName));
			auto_xerces_str sSize	(pChild->getAttribute(wsSize));

			CFieldGroupDefined *pGroupField = new CFieldGroupDefined(
				sName, 
				sSize);

			DOMElement *pSub = (DOMElement *)pChild->getFirstChild();

			if (!pSub)
				return XML_LOADER_ERROR;

			while (pSub)
			{
				if (0 == XMLString::compareString(pSub->getNodeName(),
												  wsNormal))
				{
					auto_xerces_str sName (pElement->getAttribute(wsName));
					auto_xerces_str	sLength(pElement->getAttribute(wsLength));
					auto_xerces_str	sSigned(pElement->getAttribute(wsSigned));

					EFieldType Type;

					GetFieldType(
						FIELD_NORMAL_STYLE, 
						atoi(sLength), 
						0 == strcmp(sSigned, "true") ? true_v : false_v,
						Type);
					
					CFieldNumber *pField = new CFieldNumber(sName, 
															Type, 
															pGroupField);

					pGroupField->SetSubField(pField);
				}
				else if (0 == XMLString::compareString(pSub->getNodeName(),
													   wsFloat))
				{
					auto_xerces_str sName (pElement->getAttribute(wsName));
					auto_xerces_str	sLength(pElement->getAttribute(wsLength));

					EFieldType Type;

					GetFieldType(FIELD_FLOAT_STYLE, 
								 atoi(sLength), 
								 false_v, 
								 Type);
					
					CFieldNumber *pField = new CFieldNumber(sName, 
															Type, 
															pGroupField);

					pGroupField->SetSubField(pField);
				}
				else if (0 == XMLString::compareString(pSub->getNodeName(),
													   wsString))
				{
					auto_xerces_str sName (pElement->getAttribute(wsName));
					auto_xerces_str	sLength(pElement->getAttribute(wsLength));
					auto_xerces_str	sSize(pElement->getAttribute(wsSize));
					
					CFieldString *pField = new CFieldString(sName, 
															atoi(sSize), 
															pGroupField);

					pGroupField->SetSubField(pField);
				}

				pSub = (DOMElement *)pSub->getNextSibling();
			}
			
			if (false_v == Data.Define(pGroupField))
				return XML_LOADER_ERROR;
		}

		pChild = (DOMElement *)pChild->getNextSibling();
	}

	return SUCCESS;
}
Пример #21
0
bool Settings::TSettingsGroup::ItlReadGroupFromXML(TiXmlElement *pElement)
{
    // flag to show if everything was fine
    bool bOk = true;

    // get first child element
    TiXmlElement* pChildElement = pElement->FirstChildElement();

    // if element has no children, return with success
    if (pChildElement == NULL)
	return true;

    do
    {
        // make sure that we got a valid pointer
        assert (pChildElement != NULL);

        // get tag name
        std::string sTagName(pChildElement->Value());

        // if it is a <group> tag ...
        if (sTagName.compare("group")==0)
        {
            std::string sName;

            // get name of group
            pChildElement->QueryStringAttribute("name", &sName);

            // check if group has a valid name
            bOk = (sName.length() > 0);

            assert (bOk);

            // if everything was fine, read group from xml element
            if (bOk)
                bOk = GetGroup(sName)->ItlReadGroupFromXML(pChildElement);

            assert (bOk);

        }
        // else, if it is a <value> tag ...
        else if (sTagName.compare("value")==0)
        {
            std::string sName;
            std::string sType;

            // get name attribute
            pChildElement->QueryStringAttribute("name", &sName);

            // get type attribute
            pChildElement->QueryStringAttribute("type", &sType);

            // check if the values are valid
            bOk &= (sName.length() > 0);
            bOk &= (sType.length() > 0);

            assert (bOk);

            // get inner value of the tag (<xy>I_MEAN_THIS_TEXT</xy>)
            const char *szValue = pChildElement->GetText();

            // make sure that we got a valid pointer
            if (szValue != NULL)
            {
                // convert to stl string
                std::string sValue(szValue);

                // parse value (and store in group)
                bOk = ItlParseValue(sName, sType, sValue);
            }
            else // something went wrong
                bOk = false;

            assert (bOk);

        }
        else
        {
            assert (!"unknown entity");
            bOk = false;
        }
    }
    while (bOk && (pChildElement = pChildElement->NextSiblingElement()));

    return bOk;
}
Пример #22
0
/*
    Generate a value given a floating point number, using formatting defined within this class.
    The formatting mainly applies if formatting as a string. For example, was is
    the number base? should a sign always be included? are leading zeros requried?
    The formatting could include properties related to other types. For example, generate
    an error if attempting to convert a negative floating point number to an unsigned integer.
*/
QVariant QEFloatingFormatting::formatValue( const double &floatingValue, generic::generic_types valueType ) {
    switch( valueType ) {
        case generic::GENERIC_DOUBLE :
        case generic::GENERIC_FLOAT :
        {
            QVariant dValue( floatingValue );
            return dValue;
        }
        case generic::GENERIC_LONG :
        {
            qlonglong integerValue;
            if( floatingValue < (double)LONG_MIN )
                integerValue = LONG_MIN;
            else if( floatingValue > (double)LONG_MAX )
                integerValue = LONG_MAX;
            else
                integerValue = (qlonglong)floatingValue;

            QVariant lValue( integerValue );
            return lValue;
        }
        case generic::GENERIC_SHORT :
        {
            qlonglong integerValue;
            if( floatingValue < (double)SHRT_MIN )
                integerValue = SHRT_MIN;
            else if( floatingValue > (double)SHRT_MAX )
                integerValue = SHRT_MAX;
            else
                integerValue = (qlonglong)floatingValue;

            QVariant lValue( integerValue );
            return lValue;
        }
        case generic::GENERIC_UNSIGNED_LONG :
        {
            qulonglong unsignedIntegerValue;
            if( floatingValue < 0 )
                unsignedIntegerValue = 0;
            else if( floatingValue > (double)ULONG_MAX )
                unsignedIntegerValue = ULONG_MAX;
            else
                unsignedIntegerValue = (qulonglong)floatingValue;

            QVariant ulValue( unsignedIntegerValue );
            return ulValue;
        }
        case generic::GENERIC_UNSIGNED_SHORT :
        {
            qulonglong unsignedIntegerValue;
            if( floatingValue < 0 )
                unsignedIntegerValue = 0;
            else if( floatingValue > (double)USHRT_MAX )
                unsignedIntegerValue = USHRT_MAX;
            else
                unsignedIntegerValue = (qulonglong)floatingValue;

            QVariant ulValue( unsignedIntegerValue );
            return ulValue;
        }
        case generic::GENERIC_UNSIGNED_CHAR :
        {
            qulonglong unsignedIntegerValue;
            if( floatingValue < 0 )
                unsignedIntegerValue = 0;
            else if( floatingValue > (double)UCHAR_MAX )
                unsignedIntegerValue = UCHAR_MAX;
            else
                unsignedIntegerValue = (qulonglong)floatingValue;

            QVariant ulValue( unsignedIntegerValue );
            return ulValue;
        }
        case generic::GENERIC_STRING :
        {
            QString string = QString::number( floatingValue, getFormatChar(), precision );
            QVariant sValue( string );
            return sValue;
        }
        case generic::GENERIC_UNKNOWN :
        {
        }
        default :
        {
            //qDebug() << "QEFloatingFormatting::formatValue() Unknown value 'Generic' type: " << valueType;
            QVariant unknown;
            return unknown;
        }
    }
    //qDebug() << "QEFloatingFormatting::formatValue() Unknown value 'Generic' type: " << valueType;
    QVariant unknown;
    return unknown;
}
Пример #23
0
CWideString	RTFuserprops::GetOriginalSource()
{
	CWideString sValue(""); 
	FindProp( DELTAVIEW_ORIGINAL_SOURCE, NULL, &sValue );
	return sValue;
}
Пример #24
0
void Settings::TSettingsGroup::SetValue(std::string sName, const char * szValue)
{
    std::string sValue(szValue);

    SetValue(sName, sValue);
}
Пример #25
0
CWideString	RTFuserprops::GetDateSent()
{
	CWideString sValue(""); 
	FindProp( DELTAVIEW_DATESENT, NULL, &sValue );
	return sValue;
}
Пример #26
0
CWideString RTFuserprops::GetDeltaViewFileSender()
{
	CWideString sValue(""); 
	FindProp( DELTAVIEW_SENDER, NULL, &sValue );
	return sValue;
}
Пример #27
0
// virtual
CXMLHandler * ParameterHandler::processStart(const XML_Char * pszName,
    const XML_Char ** papszAttrs)
{
  CXMLHandler * pHandlerToCall = NULL;

  const char * cValue = NULL;
  const char * cType = NULL;

  std::string name;
  std::string sValue("");
  bool UnmappedKey = false;

  void * pValue = NULL;
  CCopasiParameter::Type type;

  C_FLOAT64 d;
  C_INT32 i;
  size_t ui;
  bool b;

  switch (mCurrentElement.first)
    {
      case Parameter:
        // Parameter has attributes name, type and value
        name = mpParser->getAttributeValue("name", papszAttrs);
        cType = mpParser->getAttributeValue("type", papszAttrs);
        type = toEnum(cType, CCopasiParameter::XMLType, CCopasiParameter::INVALID);
        cValue = mpParser->getAttributeValue("value", papszAttrs);

        if (cValue != NULL)
          {
            sValue = cValue;
          }

        switch (type)
          {
            case CCopasiParameter::DOUBLE:
              d = CCopasiXMLInterface::DBL(sValue.c_str());
              pValue = &d;
              break;

            case CCopasiParameter::UDOUBLE:
              d = CCopasiXMLInterface::DBL(sValue.c_str());
              pValue = &d;
              break;

            case CCopasiParameter::INT:
              i = strToInt(sValue.c_str());
              pValue = &i;
              break;

            case CCopasiParameter::UINT:
              ui = strToUnsignedInt(sValue.c_str());
              pValue = &ui;
              break;

            case CCopasiParameter::BOOL:

              if (sValue == "0" || sValue == "false")
                {
                  b = false;
                }
              else
                {
                  b = true;
                }

              pValue = &b;
              break;

            case CCopasiParameter::STRING:
            case CCopasiParameter::FILE:
            case CCopasiParameter::CN:
              pValue = &sValue;
              break;

            case CCopasiParameter::KEY:
            {
              if (sValue != "" &&
                  CKeyFactory::isValidKey(sValue))
                {
                  CCopasiObject * pObject = mpData->mKeyMap.get(sValue);

                  if (pObject)
                    {
                      sValue = pObject->getKey();
                    }
                  else
                    {
                      UnmappedKey = true;
                    }
                }

              pValue = &sValue;
            }
            break;

            default:
              CCopasiMessage(CCopasiMessage::ERROR, MCXML + 16, name.c_str(), cType, mpParser->getCurrentLineNumber());
              pValue = NULL;
              break;
          }

        mpData->pCurrentParameter = new CCopasiParameter(name, type, pValue);

        if (UnmappedKey)
          {
            mpData->UnmappedKeyParameters.push_back(mpData->pCurrentParameter->getKey());
          }

        break;

      default:
        CCopasiMessage(CCopasiMessage::EXCEPTION, MCXML + 2,
                       mpParser->getCurrentLineNumber(), mpParser->getCurrentColumnNumber(), pszName);
        break;
    }

  return pHandlerToCall;
}
Пример #28
0
CWideString	RTFuserprops::GetModifiedSource()
{
	CWideString sValue(""); 
	FindProp( DELTAVIEW_MODIFIED_SOURCE, NULL, &sValue );
	return sValue;
}
Пример #29
0
void CNumEdit::OnUpdate() 
{
	if (! myRejectingChange)
	{
		bool isneg = false;
		CString aValue;
		GetWindowText(aValue);

		if (aValue == "")
		{
			aValue = "1";
			//myRejectingChange = true;
			SetWindowText(aValue);
			//myRejectingChange = false;
			SetSel(-1);
			return;
		}
		else if (aValue != "0")
		{
			// remove leading 0
			std::string sValue(aValue);
			int nz = sValue.find_first_not_of('0');
			sValue.erase(0, nz);
			aValue = sValue.c_str();
			if (nz > 0)
			{
				//myRejectingChange = true;
				SetWindowText(aValue);
				//myRejectingChange = false;
				SetSel(myLastSel);
				return;
			}
			
		}

		LPTSTR aEndPtr;
		union
		{
			long aLongValue;
			double aDoubleValue;
		};

		errno = 0;
		switch (myType)
		{
		case TypeLong:
			aLongValue = _tcstol(aValue, &aEndPtr, 10);
			if (aLongValue < 1 && blockneg)
				isneg = true;
			break;
		case TypeDouble:
			aDoubleValue = _tcstod(aValue, &aEndPtr);
			if (aDoubleValue < 1 && blockneg)
				isneg = true;
			break;
		}

		if ((!(*aEndPtr)) && (errno != ERANGE) && (!isneg))
		{
			myLastValidValue = aValue;
		}
		else
		{
			myRejectingChange = true;
			SetWindowText(myLastValidValue);
			myRejectingChange = false;
			SetSel(myLastSel);
		}
	}
}
	void CModelReaderNode093_Triangle::OnAttribute(_In_z_ const nfWChar * pAttributeName, _In_z_ const nfWChar * pAttributeValue)
	{
		__NMRASSERT(pAttributeName);
		__NMRASSERT(pAttributeValue);
		nfInt32 nValue;

		if (wcscmp(pAttributeName, XML_3MF_ATTRIBUTE_TRIANGLE_V1) == 0) {
			nValue = fnWStringToInt32(pAttributeValue);
			if ((nValue >= 0) && (nValue < XML_3MF_MAXRESOURCEINDEX))
				m_nIndex1 = nValue;
		}

		if (wcscmp(pAttributeName, XML_3MF_ATTRIBUTE_TRIANGLE_V2) == 0) {
			nValue = fnWStringToInt32(pAttributeValue);
			if ((nValue >= 0) && (nValue < XML_3MF_MAXRESOURCEINDEX))
				m_nIndex2 = nValue;
		}

		if (wcscmp(pAttributeName, XML_3MF_ATTRIBUTE_TRIANGLE_V3) == 0) {
			nValue = fnWStringToInt32(pAttributeValue);
			if ((nValue >= 0) && (nValue < XML_3MF_MAXRESOURCEINDEX))
				m_nIndex3 = nValue;
		}

		if (wcscmp(pAttributeName, XML_3MF_ATTRIBUTE_TRIANGLE_CV1) == 0) {
			nValue = fnWStringToInt32(pAttributeValue);
			if ((nValue >= 0) && (nValue < XML_3MF_MAXRESOURCEINDEX))
				m_nTextureIndex1 = nValue;
		}

		if (wcscmp(pAttributeName, XML_3MF_ATTRIBUTE_TRIANGLE_CV2) == 0) {
			nValue = fnWStringToInt32(pAttributeValue);
			if ((nValue >= 0) && (nValue < XML_3MF_MAXRESOURCEINDEX))
				m_nTextureIndex2 = nValue;
		}

		if (wcscmp(pAttributeName, XML_3MF_ATTRIBUTE_TRIANGLE_CV3) == 0) {
			nValue = fnWStringToInt32(pAttributeValue);
			if ((nValue >= 0) && (nValue < XML_3MF_MAXRESOURCEINDEX))
				m_nTextureIndex3 = nValue;
		}

		if (wcscmp(pAttributeName, XML_3MF_ATTRIBUTE_TRIANGLE_COLORID) == 0) {
			std::wstring sValue(pAttributeValue);
			std::wstring sSubStr = sValue.substr(0, 4);
			if (sSubStr == L"tex(") {
				if (sValue.length() > 4) {
					std::wstring sTexID = sValue.substr(4, sValue.length() - sSubStr.length() - 1);
					nfInt32 nValue = fnWStringToInt32(sTexID.c_str());
					if ((nValue < 0) || (nValue >= XML_3MF_MAXRESOURCEINDEX))
						throw CNMRException(NMR_ERROR_INVALIDTEXTUREREFERENCE);

					m_nTextureID = nValue + 1;

				}
				else {
					throw CNMRException(NMR_ERROR_INVALIDTEXTUREREFERENCE);
				}

			}
			else {
				const wchar_t * pCommaValue = wcschr(pAttributeValue, L',');

				// Check, if we have a single value
				if (pCommaValue == nullptr) {

					nValue = fnWStringToInt32(pAttributeValue);
					if ((nValue >= 0) && (nValue < XML_3MF_MAXRESOURCEINDEX)) {
						m_nColorID1 = nValue + 1;
						m_nColorID2 = nValue + 1;
						m_nColorID3 = nValue + 1;
					}
				}
				else {
					// Check, if we have a color triplet
					nfInt32 nColorID1 = -1;
					nfInt32 nColorID2 = -1;
					nfInt32 nColorID3 = -1;

					fnStringToCommaSeparatedIntegerTriplet(pAttributeValue, nColorID1, nColorID2, nColorID3);

					if ((nColorID1 >= 0) && (nColorID1 < XML_3MF_MAXRESOURCEINDEX))
						m_nColorID1 = nColorID1 + 1;
					if ((nColorID2 >= 0) && (nColorID2 < XML_3MF_MAXRESOURCEINDEX))
						m_nColorID2 = nColorID2 + 1;
					if ((nColorID3 >= 0) && (nColorID3 < XML_3MF_MAXRESOURCEINDEX))
						m_nColorID3 = nColorID3 + 1;
				}
			}
		}

		if (wcscmp(pAttributeName, XML_3MF_ATTRIBUTE_TRIANGLE_MATERIALID) == 0) {
			nValue = fnWStringToInt32(pAttributeValue);
			if ((nValue >= 0) && (nValue < XML_3MF_MAXRESOURCEINDEX))
				m_nMaterialID = nValue + 1;
		}

	}