示例#1
0
        public void NewNode(bool First, Node NewNodeToSave)
        {
            NewNodeToSave.Level=0;
            if(reader.BaseStream.Length != 0) NewNodeToSave.SetID(AssignNewID());
            else NewNodeToSave.SetID(0);

            string lineToWrite = NewNodeToSave.ToString();

            string line;
            reader.DiscardBufferedData();
            reader.BaseStream.Position = 0;

            writer.BaseStream.Position=0;

            writer.WriteLine(lineToWrite);

            while ((line = reader.ReadLine()) != null)
            {
                writer.WriteLine(line);
            }

            ReloadStreams();
        }
示例#2
0
        private Node ParseNode(string line)
        {
            Node newNode = new Node();

            newNode.name = ParseName(line);
            newNode.SetID(ParseID(line));
            newNode.state = ParseState(line);
            newNode.Level = ParseLevel(line);

            return newNode;
        }
示例#3
0
        public void NewNode(UInt32 ParentID, Node NewNodeToSave)
        {
            reader.BaseStream.Position = 0;
            //writer.BaseStream.Position = 0;

            NewNodeToSave.SetID(AssignNewID());
            NewNodeToSave.Level = GetLevel(ParentID) + 1;
            string newLineToWrite = NewNodeToSave.ToString ();

            string line;

            reader.DiscardBufferedData();
            while ((line = reader.ReadLine()) != null)
            {
                writer.WriteLine(line);

                if(ParseID(line) == ParentID)
                {
                    writer.WriteLine(newLineToWrite);
                }
            }

            ReloadStreams();
        }