Exemplo n.º 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();
            }
        }
    public void Substring(string username, int startIndex, int length)
    {
        if (!userStrings.ContainsKey(username) || userStrings[username].Count == 0)
        {
            return;
        }

        BigList <char> newString = new BigList <char>();

        newString.AddRangeToFront(userStrings[username].Peek().Range(startIndex, length));
        userStrings[username].Push(newString);
    }
Exemplo n.º 3
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;
                }
            }
        }
    public void Prepend(string username, string str)
    {
        if (!userStrings.ContainsKey(username))
        {
            return;
        }

        BigList <char> newString = new BigList <char>();

        if (userStrings[username].Count > 0)
        {
            newString = userStrings[username].Peek().Clone();
        }

        newString.AddRangeToFront(str);
        userStrings[username].Push(newString);
    }
Exemplo n.º 5
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();
        }
    }
        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;
                }
            }
        }
Exemplo n.º 7
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;
            }
        }
 private static void Insert(BigList<char> rope, StringBuilder builder, string value)
 {
     rope.AddRangeToFront(value);
     builder.AppendLine("OK");
 }
Exemplo n.º 9
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();
            }
        }