2.1.26.43 tree_get_node_by_dataid


Description

Walk all tree nodes and get the tree node with given data id

Syntax

TreeNode tree_get_node_by_dataid( TreeNode & tr, int nDataID, bool bRecursive = false, int nSearchLevel = 0 )

Parameters

tr
[input] the tree node to walk
nDataID
[input] Data ID, saved in STR_DATAID_ATTRIB attribute
bRecursive
[input] true will walk all sub level nodes, false will only check this level
nSearchLevel
[input] if > 0, means do recursion up to nSearchLevel levels. bRecursive can be false.

Return

the TreeNode with given data id if successful. An invalid TreeNode if not sucessful.

Note: If nSearchLevel > 0, recursion to nSearchLevel levels occurs even if is bRecursive false.

See Also: tree_find_node_by_dataID for faster search using parent node data id's and repeat id's.

Examples

EX1

void tree_get_node_by_dataid_ex1()
{
	Tree myTree;
	TreeNode trPh = myTree.AddNode("physics");
	trPh.ExamMonth.strVal = "May";
		
	TreeNode trMath = myTree.AddNode("Math");
	TreeNode trTeacher = trMath.AddTextNode("Danice", "Teather");
	trTeacher.DataID = 1;
	trTeacher.Other1.strVal = "Male";
	trTeacher.Other1.DataID = 3;
		
	TreeNode trCount = trMath.AddNumericNode(100, "Count");
	trCount.DataID = 2;
	trCount.Other2.strVal = "First";
	trCount.Other2.DataID = 4;
	TreeNode trFirst = trMath.AddNumericNode(55, "Hello");
	trFirst.DataID = 5;
	
	TreeNode tn = tree_get_node_by_dataid(myTree, 4, false, 2);
	if( tn )
	{
		out_str("Yes!");
		out_tree(tn);
	}
	else
		out_str("No!");
}

Remark

See Also

tree_find_node_by_dataID

Header to Include

origin.h

Reference