public void AddDictToTree(TreeNode treeNode, BenDictionary dict) { foreach (KeyValuePair<BenString, IBenNode> pair in dict.dict_) { TreeNode childNode = new TreeNode(); string noteString = pair.Key.value_; if (pair.Key.value_ == "files") { int a = 0; } if (pair.Value is BenString) { noteString += ":"; noteString += (pair.Value as BenString).value_; childNode.Text = noteString; } else if (pair.Value is BenInt) { noteString += ":"; noteString += (pair.Value as BenInt).value_.ToString(); childNode.Text = noteString; } else if (pair.Value is BenDictionary) { childNode.Text = noteString + "(d)"; AddDictToTree(childNode, (pair.Value as BenDictionary)); } else if (pair.Value is BenList) { childNode.Text = noteString + "(l)"; AddListToTree(childNode, (pair.Value as BenList)); } treeNode.Nodes.Add(childNode); } }
public static IBenNode NextNote(Bencoder file) { IBenNode node = null; char key = file.ReadChar(); switch (key) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': string stringLen = string.Empty; char c = key; while (c != ':') { stringLen += c.ToString(); c = file.ReadChar(); } BenString benString = new BenString(System.Int32.Parse(stringLen)); benString.Decode(file); node = benString; break; case 'i': BenInt i = new BenInt(); i.Decode(file); node = i; break; case 'd': BenDictionary dict = new BenDictionary(); dict.Decode(file); node = dict; break; case 'l': BenList list = new BenList(); list.Decode(file); node = list; break; } return node; }