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); }
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); }
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; } } }
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"); }
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(); } }