예제 #1
0
        public static void Main(string[] args)
        {
            var data = new BigList<char>();

            Console.WriteLine("Give commands in format commans|value1|value2... etc");
            var line = Console.ReadLine();
            while (line != "Exit")
            {
                var tokens = line.Split('|').Select(c => c.Trim()).ToList();
                var command = tokens[0];
                switch (command)
                {
                    case "Insert":
                        if (tokens.Count != 2)
                        {
                            throw new ArgumentException("Invalid command format!");
                        }

                        data.AddRangeToFront(tokens[1].ToCharArray());
                        Console.WriteLine("OK");
                        break;
                    case "Append":
                        if (tokens.Count != 2)
                        {
                            throw new ArgumentException("Invalid command format!");
                        }

                        data.AddRange(tokens[1].ToCharArray());
                        Console.WriteLine("OK");
                        break;
                    case "Delete":
                        if (tokens.Count != 3)
                        {
                            throw new ArgumentException("Invalid command format!");
                        }

                        data.RemoveRange(int.Parse(tokens[1]), int.Parse(tokens[2]));
                        Console.WriteLine("OK");
                        break;
                    case "Print":
                        if (tokens.Count != 1)
                        {
                            throw new ArgumentException("Invalid command format!");
                        }

                        foreach (var ch in data)
                        {
                             Console.Write(ch);
                        }

                        Console.WriteLine();
                        break;
                }

                line = Console.ReadLine();
            }
        }
예제 #2
0
        internal void GetAreasUsed(BigList <long> list)
        {
            list.Add(startArea.Id);
            list.Add(indexHeaderPointer);

            foreach (var block in indexBlocks)
            {
                list.Add(block.StartOffset);
                long[] blockPointers = block.GetBlockPointers();
                list.AddRange(blockPointers);
            }
        }
예제 #3
0
파일: ConcatTest.cs 프로젝트: RopeLEAP/rope
        //Concat with Biglist
        public void BigListConcatReadStrings()
        {
            //Lists to calculate averages.
            List <int>    lengths   = new List <int>();
            List <double> memallocs = new List <double>();
            List <double> runtimes  = new List <double>();

            // Metadata information.
            structureName = "BigList";

            for (int i = 0; i < fNumReplications; i++)
            {
                for (int j = 0; j < fNumIterations; j++)
                {
                    //Get memory pre-operation.
                    memStart = GC.GetTotalMemory(true);

                    // Start stopwatch.
                    sw.Reset();
                    sw.Start();

                    // Create new BigList
                    BigList <char> combinedBL = new BigList <char>(warPeace);

                    //Convert foxSentence to charArray and .Add foxlist to BigList for concat.
                    combinedBL.AddRange(foxSentence);

                    //Time Stop
                    sw.Stop();

                    // Get Memory after operation.
                    memEnd = GC.GetTotalMemory(false);

                    Console.WriteLine("Start {0} End {1}", memStart, memEnd);

                    //Calculate total memory.
                    memUsed = memEnd - memStart;
                    //Console.WriteLine(memUsed);

                    // Append values to each list.
                    lengths.Add(combinedBL.Count);
                    memallocs.Add(memUsed);
                    runtimes.Add(sw.ElapsedMilliseconds);
                }
                // Print results
                Console.WriteLine("Length of new BigList: " + lengths.Sum() / lengths.Count() + " characters" +
                                  "\nRuntime: " + runtimes.Sum() / lengths.Count() + " ms" +
                                  "\nMemory used: " + memallocs.Sum() / memallocs.Count() + " bytes");
            }

            // Read Results.
            Console.ReadLine();
        }
예제 #4
0
        public static void Main()
        {
            var        n             = int.Parse(Console.ReadLine());
            List <int> numbersToSwap = Console.ReadLine().Split(' ').Select(x => int.Parse(x)).ToList();

            var collection = new BigList <int>();

            for (int i = 0; i < n; i++)
            {
                collection.Add(i + 1);
            }

            for (int i = 0; i < numbersToSwap.Count; i++)
            {
                int currentNumber = numbersToSwap[i];
                var currentIndex  = 0;

                //for (int j = collection.Count - 1; j >= 0; j--)
                //{
                //    if (collection[j] == currentNumber)
                //    {
                //        currentIndex = j;
                //        break;
                //    }
                //}

                currentIndex = collection.IndexOf(currentNumber);

                var secondSub = collection.GetRange(currentIndex + 1, collection.Count - (currentIndex + 1));
                var firstSub  = collection.GetRange(0, currentIndex);

                collection.Clear();
                collection.AddRange(secondSub);
                collection.Add(currentNumber);
                collection.AddRange(firstSub);
            }

            Console.WriteLine(string.Join(" ", collection));
        }
    public void Undo(string username)
    {
        if (!this.usersString.Contains(username))
        {
            return;
        }

        var undoString = this.usersHistory.GetValue(username).Pop();

        var newBigList = new BigList <char>();

        newBigList.AddRange(undoString);

        this.usersString.Insert(username, newBigList);
    }
        protected virtual IEnumerable <long> AddRange(long start, long end, IEnumerable <long> input)
        {
            var list = new BigList <long>((end - start) + 2);

            if (input != null)
            {
                list.AddRange(input);
            }

            for (var i = start; i <= end; ++i)
            {
                list.Add(i);
            }

            return(list);
        }
예제 #7
0
        public static void Main(string[] args)
        {
            var data = new BigList <char>();

            string input = Console.ReadLine();

            while (input != "Exit")
            {
                var inputInfo        = input.Split(' ');
                var command          = inputInfo[0].Trim();
                var dataToManipulate = inputInfo[1].Trim().ToCharArray();

                switch (command)
                {
                case "INSERT":
                    data.AddRangeToFront(dataToManipulate);
                    Console.WriteLine("OK");
                    break;

                case "APPEND":
                    data.AddRange(dataToManipulate);
                    Console.WriteLine("OK");
                    break;

                case "DELETE":
                    var index = int.Parse(inputInfo[2].Trim());
                    var count = int.Parse(inputInfo[3].Trim());

                    if (index < 0 || index >= data.Count || index + count >= data.Count)
                    {
                        Console.WriteLine("ERROR");
                        return;
                    }
                    data.RemoveRange(index, count);
                    Console.WriteLine("OK");
                    break;

                case "Print":
                    Console.WriteLine(string.Join("", data));
                    break;

                default:
                    break;
                }
            }
        }
예제 #8
0
        protected override IEnumerable <long> AddRange(long start, long end, IEnumerable <long> input)
        {
            var result = new BigList <long>();

            if (input != null)
            {
                result.AddRange(input);
            }

            using (var en = list.GetEnumerator(start, end)) {
                while (en.MoveNext())
                {
                    result.Add(en.Current);
                }
            }

            return(result);
        }
        private static void Main()
        {
            var rope = new BigList<char>();
            string command = string.Empty;
            while (command != "PRINT")
            {
                var input = Console.ReadLine().Split(' ');
                command = input[0].ToUpper();

                switch (command)
                {
                    case "INSERT":
                        var frontChars = input[1].Select(ch => ch);
                        rope.AddRangeToFront(frontChars);
                        Console.WriteLine("OK");
                        break;
                    case "APPEND":
                        var endChars = input[1].Select(ch => ch);
                        rope.AddRange(endChars);
                        Console.WriteLine("OK");
                        break;
                    case "DELETE":
                        int startIndex = int.Parse(input[1]);
                        int count = int.Parse(input[2]);
                        try
                        {
                            rope.RemoveRange(startIndex, count);
                            Console.WriteLine("OK");
                        }
                        catch (ArgumentOutOfRangeException)
                        {
                            Console.WriteLine("ERROR");
                        }

                        break;
                    case "PRINT":
                        Console.WriteLine(string.Join(string.Empty, rope));
                        break;
                    default:
                        Console.WriteLine("Invalid command.");
                        break;
                }
            }
        }
예제 #10
0
    public static void Main()
    {
        BigList <char> editor = new BigList <char>();
        string         input  = Console.ReadLine();

        while (input != string.Empty)
        {
            var tokens = input.Split(' ');

            if (tokens[0] == "INSERT")
            {
                string inputString = tokens[1];

                editor.AddRangeToFront(tokens[1].ToCharArray());

                Console.WriteLine("OK");
            }
            else if (tokens[0] == "APPEND")
            {
                editor.AddRange(tokens[1].ToCharArray());

                Console.WriteLine("OK");
            }
            else if (tokens[0] == "DELETE")
            {
                int startIndex = int.Parse(tokens[1]);
                int count      = int.Parse(tokens[2]);

                editor.RemoveRange(startIndex, count);

                Console.WriteLine("OK");
            }
            else if (tokens[0] == "PRINT")
            {
                Console.WriteLine(string.Join("", editor));
            }
            else
            {
                Console.WriteLine("Uknown command.");
            }

            input = Console.ReadLine();
        }
    }
        public static void Main()
        {
            BigList <char> rope    = new BigList <char>();
            string         command = Console.ReadLine();

            while (!command.ToLower().Equals("print"))
            {
                string[] commandArgs = command.Split();
                string   comandType  = commandArgs[0].ToLower();
                if (comandType.Equals("insert"))
                {
                    string str = commandArgs[1];
                    rope.InsertRange(0, str);
                    Console.WriteLine("OK");
                }
                else if (comandType.Equals("append"))
                {
                    string str = commandArgs[1];
                    rope.AddRange(str);
                    Console.WriteLine("OK");
                }
                else if (comandType.Equals("delete"))
                {
                    int index = int.Parse(commandArgs[1]);
                    int count = int.Parse(commandArgs[2]);

                    try
                    {
                        rope.RemoveRange(index, count);
                        Console.WriteLine("OK");
                    }
                    catch (ArgumentOutOfRangeException)
                    {
                        Console.WriteLine("ERROR");
                    }
                }

                command = Console.ReadLine();
            }

            Console.WriteLine(string.Join("", rope));
        }
예제 #12
0
        public static void Main()
        {
            BigList <char> str = new BigList <char>();

            while (true)
            {
                string[] input = Console.ReadLine().Split(' ');

                string command = input[0].ToLower();

                switch (command)
                {
                case "insert":
                    InsertString(str, input[1], int.Parse(input[2]));
                    break;

                case "append":
                    str.AddRange(input[1]);
                    break;

                case "delete":
                    str.RemoveRange(int.Parse(input[1]), int.Parse(input[2]));
                    break;

                case "replace":
                    ReplaceSubstring(str, int.Parse(input[1]), int.Parse(input[2]), input[3]);
                    break;

                case "print":
                    foreach (char ch in str)
                    {
                        Console.Write(ch);
                    }
                    break;

                default:
                    Console.WriteLine("Invalid command, please try again");
                    break;
                }
            }
        }
예제 #13
0
 private static bool AppendToRope(BigList<char> rope, string input)
 {
     var chars = input.ToCharArray();
     rope.AddRange(chars);
     return true;
 }
 private static void Append(BigList<char> rope, StringBuilder builder, string value)
 {
     rope.AddRange(value);
     builder.AppendLine("OK");
 }
예제 #15
0
        private static void ProcessData(string[] data)
        {
            switch (data[0].Trim().ToLower())
            {
            case "insert":
            {
                string someString = data[1];
                //content.InsertRange(0, someString.ToCharArray());
                content.AddRangeToFront(someString.ToCharArray());
                Console.WriteLine("Roger that");
            } break;

            case "append":
            {
                string someString = data[1];
                content.AddRange(someString.ToCharArray());
                //someString.ToCharArray().ToList().ForEach(e => content.Add(e));
                Console.WriteLine("Roger that");
            } break;

            case "delete":
            {
                var intData = data[1].Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).Select(int.Parse).ToArray();
                if (intData.Count() == 2)
                {
                    if (intData[0] + intData[1] < content.Count)
                    {
                        content.RemoveRange(intData[0], intData[1]);
                        Console.WriteLine("Roger that");
                    }
                    else
                    {
                        Console.WriteLine("ERROR. Please try again or press Enter to exit the program.");
                    }
                }
                else
                {
                    wrongCommandSyntax = true;
                }
            } break;

            case "replace":
            {
                var strData = data[1].Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).ToArray();
                if (strData.Count() == 3)
                {
                    int index  = int.Parse(strData[0]);
                    int length = int.Parse(strData[1]);

                    if (index + length < content.Count)
                    {
                        content.RemoveRange(index, length);
                        content.InsertRange(index, strData[2].ToCharArray());
                        Console.WriteLine("Roger that");
                    }
                    else
                    {
                        Console.WriteLine("ERROR. Please try again or press Enter to exit the program.");
                    }
                }
                else
                {
                    wrongCommandSyntax = true;
                }
            } break;

            case "print":
            {
                content.ForEach(item => Console.Write(item));
                Console.WriteLine();
            } break;

            default: wrongCommandSyntax = true; break;
            }
        }
예제 #16
0
        public static void Main(string[] args)
        {
            var text = new BigList<char> ();
            string input = " ";
            do {
                input = Console.ReadLine();

                string command;
                string arguments;

                if( -1 != input.IndexOf( ' ' )) {
                    command = input.Substring(0, input.IndexOf(' ')).ToLower();
                    arguments = input.Substring(input.IndexOf(' ')+1);
                } else {
                    command = input;
                    arguments = " ";
                }
                switch( command ) {
                    case "append":
                        text.AddRange(arguments.ToCharArray());
                        Console.WriteLine("OK");
                        break;

                    case "insert":
                        var pos = int.Parse(arguments.Substring(0, arguments.IndexOf(' ')));
                        arguments = arguments.Substring(arguments.IndexOf(' ') + 1);
                        try
                        {
                            text.InsertRange(pos, arguments);
                            Console.WriteLine("OK");
                        }
                        catch (Exception)
                        {
                            Console.WriteLine("ERROR");
                        }
                        break;

                    case "delete":
                        var parts = arguments.Split( ' ' );
                        try {
                            text.RemoveRange(int.Parse(parts[0]), int.Parse(parts[1]));
                            Console.WriteLine("OK");
                        }
                        catch(Exception) {
                            Console.WriteLine("ERROR");
                        }
                        break;

                    case "replace":
                        var replaceStart = int.Parse(arguments.Substring(0, arguments.IndexOf(' ')));
                        arguments = arguments.Substring(arguments.IndexOf(' ')+1);
                        var replaceCount = int.Parse(arguments.Substring(0, arguments.IndexOf(' ')));
                        arguments = arguments.Substring(arguments.IndexOf(' ') + 1);
                        try
                        {
                            text.RemoveRange(replaceStart, replaceCount);
                            text.InsertRange(replaceStart, arguments.ToCharArray());
                            Console.WriteLine("OK");
                        } catch (Exception)
                        {
                            Console.WriteLine("ERROR");
                        }
                        break;
                    case "print":
                        text.ForEach(Console.Write);
                        Console.WriteLine ();
                        break;
                }

            } while("end" != input.ToLower());
        }
예제 #17
0
        public static void Main(string[] args)
        {
            var data = new BigList <char>();

            Console.WriteLine("Give commands in format commans|value1|value2... etc");
            var line = Console.ReadLine();

            while (line != "Exit")
            {
                var tokens  = line.Split('|').Select(c => c.Trim()).ToList();
                var command = tokens[0];
                switch (command)
                {
                case "Insert":
                    if (tokens.Count != 2)
                    {
                        throw new ArgumentException("Invalid command format!");
                    }

                    data.AddRangeToFront(tokens[1].ToCharArray());
                    Console.WriteLine("OK");
                    break;

                case "Append":
                    if (tokens.Count != 2)
                    {
                        throw new ArgumentException("Invalid command format!");
                    }

                    data.AddRange(tokens[1].ToCharArray());
                    Console.WriteLine("OK");
                    break;

                case "Delete":
                    if (tokens.Count != 3)
                    {
                        throw new ArgumentException("Invalid command format!");
                    }

                    data.RemoveRange(int.Parse(tokens[1]), int.Parse(tokens[2]));
                    Console.WriteLine("OK");
                    break;

                case "Print":
                    if (tokens.Count != 1)
                    {
                        throw new ArgumentException("Invalid command format!");
                    }

                    foreach (var ch in data)
                    {
                        Console.Write(ch);
                    }

                    Console.WriteLine();
                    break;
                }

                line = Console.ReadLine();
            }
        }
예제 #18
0
        public static void Main(string[] args)
        {
            var data = new BigList<char>();

            var line = Console.ReadLine().Trim();
            while (line != "Exit")
            {
                var tokens = line.Split('|').Select(c => c.Trim()).ToArray();
                var command = tokens[0];
                switch (command)
                {
                    case "Insert":
                        var possition = int.Parse(tokens[2]);
                        if (possition > data.Count || possition < 0)
                        {
                            Console.WriteLine("Error");
                        }
                        else
                        {
                            var insertData = tokens[1].ToCharArray();
                            data.InsertRange(possition, insertData);
                        }

                        break;
                    case "Append":
                        data.AddRange(tokens[1].ToCharArray());
                        break;
                    case "Delete":
                        var startIndex = int.Parse(tokens[1]);
                        var count = int.Parse(tokens[2]);
                        if (startIndex + count >= data.Count || startIndex < 0)
                        {
                            Console.WriteLine("Error");
                        }
                        else
                        {
                            data.RemoveRange(startIndex, count);
                        }

                        break;
                    case "Replace":
                        var startPossition = int.Parse(tokens[1]);
                        var replaceCount = int.Parse(tokens[2]);
                        if (startPossition + replaceCount >= data.Count || startPossition < 0)
                        {
                            Console.WriteLine("Error");
                        }
                        else
                        {
                            var replaceData = tokens[3].ToCharArray();
                            data.RemoveRange(startPossition, replaceCount);
                            data.InsertRange(startPossition, replaceData);
                        }

                        break;
                    case "Print":
                        Console.WriteLine(string.Join("", data));
                        break;
                }

                line = Console.ReadLine().Trim();
            }
        }
예제 #19
0
 public StringEditor(string word = "")
 {
     Rope.AddRange(word.ToCharArray());
 }
예제 #20
0
    static void Main()
    {
        BigList <char> editor = new BigList <char>();
        string         input  = Console.ReadLine();
        Queue <string> output = new Queue <string>();

        while (input != string.Empty)
        {
            var tokens = input.Split(' ');

            if (tokens[0] == "INSERT")
            {
                int    startPosition = int.Parse(tokens[1]);
                string inputString   = tokens[2];

                if (startPosition < 0 || startPosition > editor.Count)
                {
                    output.Enqueue("ERROR");
                }
                else
                {
                    editor.InsertRange(startPosition, inputString.ToCharArray());

                    output.Enqueue("OK");
                }
            }
            else if (tokens[0] == "APPEND")
            {
                editor.AddRange(tokens[1].ToCharArray());

                output.Enqueue("OK");
            }
            else if (tokens[0] == "DELETE")
            {
                int startIndex = int.Parse(tokens[1]);
                int count      = int.Parse(tokens[2]);

                if (startIndex < 0 || count < 0 || startIndex + count > editor.Count)
                {
                    output.Enqueue("ERROR");
                }
                else
                {
                    editor.RemoveRange(startIndex, count);

                    output.Enqueue("OK");
                }
            }
            else if (tokens[0] == "REPLACE")
            {
                int    startIndex = int.Parse(tokens[1]);
                int    count      = int.Parse(tokens[2]);
                string newString  = tokens[3];

                if (startIndex < 0 || count < 0 || startIndex + count > editor.Count)
                {
                    output.Enqueue("ERROR");
                }
                else
                {
                    editor.RemoveRange(startIndex, count);
                    editor.InsertRange(startIndex, newString);

                    output.Enqueue("OK");
                }
            }
            else if (tokens[0] == "PRINT")
            {
                output.Enqueue(string.Join("", editor));
            }
            else if (tokens[0] == "END")
            {
                break;
            }
            else
            {
                output.Enqueue("Uknown command.");
            }

            input = Console.ReadLine();
        }

        Console.WriteLine();

        foreach (string outputLine in output)
        {
            Console.WriteLine(outputLine);
        }
    }
예제 #21
0
        public static void Main(string[] args)
        {
            var data = new BigList <char>();

            var line = Console.ReadLine().Trim();

            while (line != "Exit")
            {
                var tokens  = line.Split('|').Select(c => c.Trim()).ToArray();
                var command = tokens[0];
                switch (command)
                {
                case "Insert":
                    var possition = int.Parse(tokens[2]);
                    if (possition > data.Count || possition < 0)
                    {
                        Console.WriteLine("Error");
                    }
                    else
                    {
                        var insertData = tokens[1].ToCharArray();
                        data.InsertRange(possition, insertData);
                    }

                    break;

                case "Append":
                    data.AddRange(tokens[1].ToCharArray());
                    break;

                case "Delete":
                    var startIndex = int.Parse(tokens[1]);
                    var count      = int.Parse(tokens[2]);
                    if (startIndex + count >= data.Count || startIndex < 0)
                    {
                        Console.WriteLine("Error");
                    }
                    else
                    {
                        data.RemoveRange(startIndex, count);
                    }

                    break;

                case "Replace":
                    var startPossition = int.Parse(tokens[1]);
                    var replaceCount   = int.Parse(tokens[2]);
                    if (startPossition + replaceCount >= data.Count || startPossition < 0)
                    {
                        Console.WriteLine("Error");
                    }
                    else
                    {
                        var replaceData = tokens[3].ToCharArray();
                        data.RemoveRange(startPossition, replaceCount);
                        data.InsertRange(startPossition, replaceData);
                    }

                    break;

                case "Print":
                    Console.WriteLine(string.Join("", data));
                    break;
                }

                line = Console.ReadLine().Trim();
            }
        }
예제 #22
0
 static void Append(string[] args)
 {
     characters.AddRange(args[1]);
 }
예제 #23
0
    static void Main()
    {
        var text = new BigList <char>();

        while (true)
        {
            string commandParams = Console.ReadLine();
            if (commandParams == "PRINT")
            {
                foreach (char symbol in text)
                {
                    Console.Write(symbol);
                }

                Console.WriteLine();
                continue;
            }

            if (commandParams == "END")
            {
                break;
            }

            string commandName = commandParams.Substring(0, commandParams.IndexOf(' ')).Trim();
            char[] operand     = commandParams.Substring(7).ToCharArray();

            try
            {
                switch (commandName)
                {
                case "INSERT":
                    string[] insertParams = new string(operand).Split();
                    int      insertIndex  = int.Parse(insertParams[0]);
                    string   textToInsert = insertParams[1];
                    text.InsertRange(insertIndex, textToInsert);
                    break;

                case "APPEND":
                    text.AddRange(operand);
                    break;

                case "REPLACE":
                    string[] replaceParams = new string(operand).Split(new [] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
                    int      replaceIndex  = int.Parse(replaceParams[0]);
                    int      replaceCount  = int.Parse(replaceParams[1]);
                    text.RemoveRange(replaceIndex, replaceCount);

                    string replacement = replaceParams[2];
                    text.InsertRange(replaceIndex, replacement);
                    break;

                case "DELETE":
                    int[] deleteParams = new string(operand).Split().Select(int.Parse).ToArray();
                    int   startIndex   = deleteParams[0];
                    int   count        = deleteParams[1];
                    text.RemoveRange(startIndex, count);
                    break;
                }

                Console.WriteLine("OK");
            }
            catch (Exception)
            {
                Console.WriteLine("ERROR");
            }
        }
    }
    static void Main()
    {
        var text = new BigList<char>();

        while (true)
        {
            string commandParams = Console.ReadLine();
            if (commandParams == "PRINT")
            {
                foreach (char symbol in text)
                {
                    Console.Write(symbol);
                }

                Console.WriteLine();
                continue;
            }

            if (commandParams == "END")
            {
                break;
            }

            string commandName = commandParams.Substring(0, commandParams.IndexOf(' ')).Trim();
            char[] operand = commandParams.Substring(7).ToCharArray();

            try
            {
                switch (commandName)
                {
                    case "INSERT":
                        string[] insertParams = new string(operand).Split();
                        int insertIndex = int.Parse(insertParams[0]);
                        string textToInsert = insertParams[1];
                        text.InsertRange(insertIndex, textToInsert);
                        break;
                    case "APPEND":
                        text.AddRange(operand);
                        break;
                    case "REPLACE":
                        string[] replaceParams = new string(operand).Split(new []{' '}, StringSplitOptions.RemoveEmptyEntries);
                        int replaceIndex = int.Parse(replaceParams[0]);
                        int replaceCount = int.Parse(replaceParams[1]);
                        text.RemoveRange(replaceIndex, replaceCount);

                        string replacement = replaceParams[2];
                        text.InsertRange(replaceIndex, replacement);
                        break;
                    case "DELETE":
                        int[] deleteParams = new string(operand).Split().Select(int.Parse).ToArray();
                        int startIndex = deleteParams[0];
                        int count = deleteParams[1];
                        text.RemoveRange(startIndex, count);
                        break;
                }

                Console.WriteLine("OK");
            }
            catch (Exception)
            {
                Console.WriteLine("ERROR");
            }
        }
    }