| 2.2.3.17.19 TreeNode::GetValueGetValue
 DescriptionAllows recursive access for getting integer values a leaf of with a particular tagname of the TreeNode
 Allows recursive access for getting double values a leaf of with a particular tagname of the TreeNode
 Allows recursive access for getting string values a leaf of with a particular tagname of the TreeNode
 Allows recursive access for getting vector values a leaf of with a particular tagname of the TreeNode
 SyntaxBOOL GetValue( int & nval, LPCSTR lpcszPropName = NULL, BOOL bRecusrive = FALSE, BOOL bAll = FALSE ) 
 BOOL GetValue( double & dval, LPCSTR lpcszPropName = NULL, BOOL bRecusrive = FALSE, BOOL bAll = FALSE ) 
 BOOL GetValue( string & strval, LPCSTR lpcszPropName = NULL, BOOL bRecusrive = FALSE, BOOL bAll = FALSE ) 
 BOOL GetValue( vectorbase & vval, LPCSTR lpcszPropName = NULL, BOOL bRecusrive = FALSE, BOOL bAll = FALSE ) Parameters nval[output] Recieve the value if succesful, overloaded for these few basic types lpcszPropName[input] tag name of leaves to get values to, if NULL will get values to "this" TreeNode object bRecusrive[input] if True, will check all leaves, not just children, but there descendants too, for a tag name match else will only search the immediate children bAll[input] Useless argument
 
  dval[output] Recieve the value if succesful, overloaded for these few basic types lpcszPropName[input] tag name of leaves to get values to, if NULL will get values to "this" TreeNode object bRecusrive[input] if True, will check all leaves, not just children, but there descendants too, for a tag name match else will only search the immediate children bAll[input] Useless argument
 
  strval[output] Recieve the value if succesful, overloaded for these few basic types lpcszPropName[input] tag name of leaves to get values to, if NULL will get values to "this" TreeNode object bRecusrive[input] if True, will check all leaves, not just children, but there descendants too, for a tag name match else will only search the immediate children bAll[input] Useless argument
 
  vval[output] Recieve the value if succesful, overloaded for these few basic types, not support vector<string> type lpcszPropName[input] tag name of leaves to get values to, if NULL will get values to "this" TreeNode object bRecusrive[input] if True, will check all leaves, not just children, but there descendants too, for a tag name match else will only search the immediate children bAll[input] Useless argument
 ReturnTRUE if successful FALSE if fail
 TRUE if successful FALSE if fail
 TRUE if successful FALSE if fail
 TRUE if successful FALSE if fail
 ExamplesEX1
 // The example shows how to get integer values
void TreeNode_GetValue_ex1()
{
    Tree tr;
    TreeNode tn1;
    tn1 = tr.AddTextNode("123", "Num", 1);
    out_tree(tr);
    /*
			   tr
               |
            Num(123)
    */
 
    int i;
    tr.GetValue(i, "Num"); // Get the value of node which tagname is Name
    out_int("Num = " , i);
}EX2
 // The example shows how to get double values
void TreeNode_GetValue_ex2()
{
    Tree tr;
    TreeNode tn1;
    tn1 = tr.AddNumericNode(123.456, "Num", 1);
    out_tree(tr);
    /*
			   tr
               |
            Num(123.456)
    */
 
    double d;
    tr.GetValue(d, "Num"); // Get the value of node which tagname is Name
    out_double("Num = " , d);
}EX3
 // The example shows how to get string values
void TreeNode_GetValue_ex3()
{
    Tree tr;
    TreeNode tn1;
    tn1 = tr.AddTextNode("Kenny", "Name", 1);
    out_tree(tr);
    /*
			   tr
               |
            Name(Kenny)
    */
 
    string strValue;
    tr.GetValue(strValue, "Name"); // Get the value of node which tagname is Name
    out_str("Name = " + strValue);
}EX4
 // The example shows how bRecusrive works.
void TreeNode_GetValue_ex4()
{
	Tree tr;
    TreeNode tn1 = tr.AddTextNode("abc", "node1", 1);
    TreeNode tn11 = tn1.AddTextNode("def", "node2", 2);
    TreeNode tn12 = tn1.AddTextNode("ghi", "node3", 3);
    TreeNode tn111 = tn11.AddTextNode("xxf", "node4", 4);
    out_tree(tr);
    /* 
    		   tr
    		   |
    		tn1(abc)
    	   /        \
    	tn11(def)  tn12(ghi)
    	  |
      tn111(xxf)
    */
    
    // Recursiving get the match
    string strValue;
    bool bRecusrive = false; // if set as false, GetValue will return false
	if( tn1.GetValue(strValue, "node4", bRecusrive) )
	{
		out_str("strValue = " + strValue);
	}
}EX5
 // The example shows how to Set/Get vector value
void TreeNode_GetValue_ex5()
{
    vector<double> vValues1;
    for(int nn = 0; nn < 4; ++nn)
        vValues1.Add( rnd() );
 
    Tree tr;
    TreeNode tn = tr.AddNode("Var", 1); 
    if( tr.SetValue(vValues1, "Var") )  // Assign a vector to Var node
    {
        out_str("Assign vector to tn node");
    }
 
    // Get the value of node "Var"
    vector<double> vValues2;
    if( tr.GetValue(vValues2, "Var") )
    { 
        for(int ii = 0; ii < vValues2.GetSize(); ++ii)
        {
            printf("NO.%d = %f\n", ii, vValues2[ii]);
        }
    }
}RemarkSee AlsoTreeNode::SetValue
 Header to Includeorigin.h
 |