Exemplo n.º 1
0
        /// <summary>
        /// Parsa poruku, rekord i puni IParseTree objekt
        /// </summary>
        /// <param name="root"></param>
        /// <param name="item"></param>
        /// <param name="delimiter"></param>
        /// <param name="lv"></param>
        public void Parse(IParseTree root, string item, string delimiter, int lv)
        {
            log.Debug("Parser:Parse");

            try
            {
                root.SetValue(item);
                if (lv >= delimiter.Length)
                    return;
                string[] items = item.Split(delimiter[lv]);
                lv++;
                foreach (string str in items)
                {
                    if (items.Length > 1 || items[0].Contains(delimiter[lv]))
                    {
                        IParseTree node = this.CreateNode(lv);
                        node.SetValue(str);
                        root.GetNodes().Add(node);
                        Parse(node, str, delimiter, lv);
                    }
                }
            }
            catch (Exception ex)
            {
                log.Error(ex.ToString());
                throw;
            }
        }