internal void createNewFile() { //Declare new FilePath variable and grab validated Path FilePath path = new FilePath(); string filePath = path.GetFilePath("NewFile"); Console.WriteLine("\nEnter file content"); StreamWriter streamWriter = File.CreateText(filePath); try { //Write in the file until Esc key is pressed while (Console.ReadKey(true).Key != ConsoleKey.Escape) { string line = Console.ReadLine(); streamWriter.WriteLine(line); } Console.WriteLine("\nFile created!"); } finally { streamWriter.Close(); } //Display Menu after creating file TextEditorMenu menu = new TextEditorMenu(); menu.DisplayMenu(filePath); }
internal void InsertLine() { while (true) { Console.WriteLine("\nEnter index of line to insert: "); int lineNumber; string index = Console.ReadLine(); //String input for line number if (Regex.IsMatch(index, @"^\d+$")) //Checks if the index is all numbers { lineNumber = int.Parse(index); var lines = File.ReadAllLines(_path); //Check line index is in range if (lineNumber < lines.Length) { string[] newLines = new string[lines.Length + 1]; //Array for line insertion //Read updated new line Console.Write("Enter new line:"); string newLineData = Console.ReadLine(); //Assigning new value to line newLines[lineNumber] = newLineData; //Assinging value from previous lines to new lines //i & j iterate over the newLines & lines array respectively for (int i = 0, j = 0; i <= lines.Length; i++) { if (i == lineNumber) //skip the inserted line { continue; } newLines[i] = lines[j]; //assign the lines value j++; //increment lines iterator } //Writing Data back to the file File.WriteAllLines(_path, newLines); break; } else { Console.WriteLine("\nLine number is out of range, enter valid line number"); } } else { Console.WriteLine("\nInvalid line type, enter valid line number"); } } TextEditorMenu menu = new TextEditorMenu(); menu.DisplayMenu(_path); }
internal void UpdateLine() { do { Console.WriteLine("\nEnter index of line to update: "); int lineNumber; string index = Console.ReadLine(); //String input for line number if (Regex.IsMatch(index, @"^\d+$")) //Checks if the index is all numbers { lineNumber = int.Parse(index); var lines = File.ReadAllLines(_path); //Check line index is in range if (lineNumber < lines.Length) { //Read updated line Console.WriteLine("Enter new updated line:"); string newLineData = Console.ReadLine(); //Assigning new value to line lines[lineNumber] = newLineData; //Writing Data back to the file File.WriteAllLines(_path, lines); break; } else { Console.WriteLine("\nLine number is out of range, enter valid line number"); } } else { Console.WriteLine("\nInvalid line type, enter valid line number"); } } while (true); TextEditorMenu menu = new TextEditorMenu(); menu.DisplayMenu(_path); }
internal void displayFile() { //Declare new FilePath variable and grab validated Path FilePath path = new FilePath(); string filePath = path.GetFilePath("OpenFile"); //StreamReader used for reading entire file StreamReader streamReader = File.OpenText(filePath); try { //Display the entire file on console Console.WriteLine("\nFile content:\n\n{0}", streamReader.ReadToEnd()); } finally { streamReader.Close(); } //Display Menu after creating file TextEditorMenu menu = new TextEditorMenu(); menu.DisplayMenu(filePath); }