tree_get_values_with_ids_and_labels

 

Description

Get sub node values with IDs and Labels.

Syntax

int tree_get_values_with_ids_and_labels( const TreeNode & trSetting, vector<int> & vnIDs, vector<string> & vsValues, vector<string> & vsLabels, bool bIncludeSub = true, bool bCheckChange = false, int nRepeatBranchID = 0 )

Parameters

trSetting
[input] a source tree
vnIDs
[output]vector of IDs from tr.
vsValues
[output]vector of strVals from tr.
vsLabels
[output] vector of Label strings in the TreeNode trSetting.
bIncludeSub
[input]TRUE or FALSE, if bIncludeSub == TRUE, this function will go through all tree node;
if not, will just go through the first level.
bCheckChange
[input] if true, will check the treenode change or not.
nRepeatBranchID
[input] DataID of parent or itself, must > 0 and < MAX_REPEAT_ID_VALUE.

Return

the number of the node have ID

-1 mean the treenode invalid,

-2 when nRepeatBranchID out of range or when nRepeatBranchID is valid and subbranch node dataid out of range.

Examples

EX1

void tree_get_values_with_ids_and_labels_ex1()
{
        Tree myTree;
        TreeNode tn1, tn2;
        tn1 = myTree.AddTextNode("a", "tn1", 1);
        tn1.SetAttribute(STR_DATAID_ATTRIB, 1);
        
        tn2 = myTree.AddTextNode("b", "tn2", 2);
        tn2.SetAttribute(STR_DATAID_ATTRIB, 2);

        TreeNode tn11, tn12;
        tn11 = tn1.AddTextNode("c", "tn11", 3);
        tn11.SetAttribute(STR_DATAID_ATTRIB, 3);

        tn12 = tn1.AddTextNode("d", "tn12", 4);
        tn12.SetAttribute(STR_DATAID_ATTRIB, 4);

        TreeNode tn111, tn112;
        tn111 = tn11.AddTextNode("e", "tn111", 5);
        tn111.SetAttribute(STR_DATAID_ATTRIB, 5);

        tn112 = tn11.AddTextNode("f", "tn112", 6);
        tn112.SetAttribute(STR_DATAID_ATTRIB, 6);

        
        vector<int> vnIDs;
        vector<string> vsValues;
        vector<string> vsLabels;
        
        int nn = tree_get_values_with_ids_and_labels(myTree, vnIDs, vsValues, vsLabels);
        out_int("nn = ", nn);
        int nSize = vnIDs.GetSize();
        for( int ii = 0; ii < nSize; ii++ )
        { 
                out_int("ID: ", vnIDs[ii]);
        }
        
        nSize = vsValues.GetSize();
        for( ii = 0; ii < nSize; ii++ )
        {
                out_str(vsValues[ii]);
        }
        
        nSize = vsLabels.GetSize();
        for( ii = 0; ii < nSize; ii++ )
        {
                out_str(vsLabels[ii]);
        }
}

Remark

See Also

tree_get_values_with_ids

header to Include

origin.h

Reference