Beispiel #1
0
 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);
     }
 }
Beispiel #2
0
 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;
 }