static void Main(string[] args) { int choice = 0; do { Console.WriteLine("Выберите пункт"); Console.WriteLine("1 - Просмотр таблицы"); Console.WriteLine("2 - Добавить запись"); Console.WriteLine("3 - Удалить запись"); Console.WriteLine("4 - Обновить запись"); Console.WriteLine("5 - Поиск записей"); Console.WriteLine("6 - Просмотреть лог"); Console.WriteLine("7 - Выход"); choice = int.Parse(Console.ReadLine()); switch (choice) { case WATCH_TABLE: Console.WriteLine("{0,10} {1,10} {2,10} {3,10}", "Вид транспорта", "№ маршрута", "Протяженность маршрута (км) ", "Время в дороге (мин)"); for (int list_item = 0; list_item < list.Count; list_item++) { HRD t = list[list_item]; Console.WriteLine("----------------------------------------------------------------------------\n"); t.ShowTable(t.Transport, t.number, t.Length, t.RoadTime); } string textFromFile = FileExpert.ReadFromRelativePath("lab.dat"); Console.WriteLine(textFromFile); Logging.Add(DateTime.Now, Operations.LOOK, "Просмотрена таблица"); break; case ADD_RAW: HRD t1; Console.WriteLine("Введите Вид транспорта"); t1.Transport = Console.ReadLine(); Console.WriteLine("Введите Номер маршрута"); t1.number = Console.ReadLine(); Found1: Console.WriteLine("Введите Протяженность маршрута (км) "); try { int enter_length = Convert.ToInt32(Console.ReadLine()); //вводим данные, и конвертируем в целое число t1.Length = enter_length; if ((enter_length <= 0) || (enter_length >= 250)) { Console.WriteLine("Error. (Введите повторно)"); goto Found1; } } catch (FormatException) { t1.Length = 000; Console.WriteLine("Error. (Введите повторно)"); goto Found1; } Pos pro; Found3: Console.WriteLine("Время в дороге (мин)"); try { string enter_length3 = Console.ReadLine(); t1.RoadTime = enter_length3; pro = (Pos)Enum.Parse(typeof(Pos), enter_length3); } catch (Exception ex) { Console.WriteLine("Error. (Введите повторно)"); pro = Pos.None; goto Found3; } list.Add(t1); Console.WriteLine("Строка была добавлена!"); Console.WriteLine(); Logging.Add(DateTime.Now, Operations.ADD, "Строка добавлена в таблицу!"); break; case REMOVE_RAW: Console.WriteLine("Введите номер строки, которую хотите удалить"); int number = int.Parse(Console.ReadLine()); try { list.RemoveAt(number - 1); } catch (Exception e) { Console.WriteLine("Строки с таким номером нет!"); } Console.WriteLine(); Logging.Add(DateTime.Now, Operations.ADD, "Строка удалена!"); break; case UPDATE_RAW: Console.WriteLine("Введите номер строки, которую хотите изменить"); int UpdateIndex = int.Parse(Console.ReadLine()); try { HRD t2 = list[UpdateIndex - 1]; //Выводим старые значения t2.ShowTable(t2.Transport, t2.number, t2.Length, t2.RoadTime); //Вводим новые значения Console.WriteLine("Введите новый вид транспорта"); t2.Transport = Console.ReadLine(); Console.WriteLine("Введите новый № маршрута "); t2.number = Console.ReadLine(); Console.WriteLine("Введите новую протяженность маршрута (км) "); Found2: t2.Length = int.Parse(Console.ReadLine()); try { int enter_length2 = Convert.ToInt32(Console.ReadLine()); //вводим данные, и конвертируем в целое число t2.Length = enter_length2; if ((enter_length2 < 1895) || (enter_length2 > 2030)) { Console.WriteLine("Error. (Введите повторно)"); goto Found2; } } catch (FormatException) { t2.Length = 000; Console.WriteLine("Error. (Введите повторно)"); goto Found2; } Console.WriteLine("Введите новый Тип"); Pos pro2; Found4: try { string enter_length4 = Console.ReadLine(); t2.RoadTime = enter_length4; pro2 = (Pos)Enum.Parse(typeof(Pos), enter_length4); } catch (Exception ex) { Console.WriteLine("Error. (Введите повторно)"); pro2 = Pos.None; goto Found4; } list[UpdateIndex - 1] = t2; } catch (Exception e) { Console.WriteLine("Нет строки с таким номером!"); } Logging.Add(DateTime.Now, Operations.ADD, "Строка обновлена!"); break; case FIND_RAW: Console.WriteLine("Введите фамилию"); string text = Console.ReadLine(); HRD FindRaw; for (int item_list = 0; item_list < list.Count; item_list++) { FindRaw = list[item_list]; if (FindRaw.Transport.ToLower().Equals(text.ToLower())) { Console.Write("{0,10}", FindRaw.Transport); Console.Write("{0,10}", FindRaw.number); Console.Write("{0,10}", FindRaw.Length); Console.Write("{0,10}", FindRaw.RoadTime); Console.WriteLine(); } } Logging.Add(DateTime.Now, Operations.ADD, "Строка найдена!"); break; case SHOW_LOG: Logging.Add(DateTime.Now, Operations.ADD, "Логи просмотрены!"); Logging.ShowInfo(); break; case EXIT: String file = string.Empty; foreach (var t in list) { file += "----------------------------------------------------------------------------"; file += t.Transport + "\t" + t.number + "\t" + t.Length + "\t" + t.RoadTime; } //for (int list_item = 0; list_item < list.Count; list_item++) //{ // HRD t = list[list_item]; // write.WriteLine("----------------------------------------------------------------------------"); // write.WriteLine("{0,10} {1,10} {2,10} {3,10}" , t.Transport, t.number, t.Length, t.RoadTime); // } FileExpert.SaveToRelativePath("lab.dat", file); break; } } while (choice != 7); }
static void Main(string[] args) { int choice = 0; do { Console.WriteLine("Выберите пункт"); Console.WriteLine("1 - Просмотр таблицы"); Console.WriteLine("2 - Добавить запись"); Console.WriteLine("3 - Удалить запись"); Console.WriteLine("4 - Обновить запись"); Console.WriteLine("5 - Поиск записей"); Console.WriteLine("6 - Просмотреть лог"); Console.WriteLine("7 - Выход"); choice = int.Parse(Console.ReadLine()); string path = @"D:\lab.dat"; switch (choice) { case WATCH_TABLE: Console.WriteLine("{0,10} {1,10} {2,10} {3,10}", "Фамилия", "Должность", "Год рождения", "Оклад"); for (int list_item = 0; list_item < list.Count; list_item++) { HRD t = list[list_item]; Console.WriteLine("----------------------------------------------------------------------------"); t.ShowTable(t.Name, t.Postion, t.Yers, t.Salary); } FileStream fstream = File.OpenRead(path); // преобразуем строку в байты byte[] array = new byte[fstream.Length]; // считываем данные fstream.Read(array, 0, array.Length); // декодируем байты в строку string textFromFile = System.Text.Encoding.Default.GetString(array); Console.WriteLine(textFromFile); Logging.Add(DateTime.Now, Operations.LOOK, "Просмотрена таблица"); break; case ADD_RAW: HRD t1; Console.WriteLine("Введите Фамилию"); t1.Name = Console.ReadLine(); Console.WriteLine("ВведитеДолжность"); t1.Postion = Console.ReadLine(); Found1: Console.WriteLine("Введите год рождения"); try { int blabla = Convert.ToInt32(Console.ReadLine()); //вводим данные, и конвертируем в целое число t1.Yers = blabla; if ((blabla < 1895) || (blabla > 2030)) { Console.WriteLine("Error. (Введите повторно)"); goto Found1; } } catch (FormatException) { t1.Yers = 000; Console.WriteLine("Error. (Введите повторно)"); goto Found1; } Pos pro; Found3: Console.WriteLine("Введите оклад"); try { string blabla3 = Console.ReadLine(); t1.Salary = blabla3; pro = (Pos)Enum.Parse(typeof(Pos), blabla3); } catch (Exception ex) { Console.WriteLine("Error. (Введите повторно)"); pro = Pos.None; goto Found3; } list.Add(t1); Console.WriteLine("Строка была добавлена!"); Console.WriteLine(); Logging.Add(DateTime.Now, Operations.ADD, "Строка добавлена в таблицу!"); break; case REMOVE_RAW: Console.WriteLine("Введите номер строки, которую хотите удалить"); int number = int.Parse(Console.ReadLine()); try { list.RemoveAt(number - 1); } catch (Exception e) { Console.WriteLine("Строки с таким номером нет!"); } Console.WriteLine(); Logging.Add(DateTime.Now, Operations.ADD, "Строка удалена!"); break; case UPDATE_RAW: Console.WriteLine("Введите номер строки, которую хотите изменить"); int UpdateIndex = int.Parse(Console.ReadLine()); try { HRD t2 = list[UpdateIndex - 1]; //Выводим старые значения t2.ShowTable(t2.Name, t2.Postion, t2.Yers, t2.Salary); //Вводим новые значения Console.WriteLine("Введите новое фамилию"); t2.Name = Console.ReadLine(); Console.WriteLine("Введите новую должность"); t2.Postion = Console.ReadLine(); Console.WriteLine("Введите новый год рождения"); Found2: t2.Yers = int.Parse(Console.ReadLine()); try { int blabla2 = Convert.ToInt32(Console.ReadLine()); //вводим данные, и конвертируем в целое число t2.Yers = blabla2; if ((blabla2 < 1895) || (blabla2 > 2030)) { Console.WriteLine("Error. (Введите повторно)"); goto Found2; } } catch (FormatException) { t2.Yers = 000; Console.WriteLine("Error. (Введите повторно)"); goto Found2; } Console.WriteLine("Введите новый Тип"); Pos pro2; Found4: try { string blabla4 = Console.ReadLine(); t2.Salary = blabla4; pro2 = (Pos)Enum.Parse(typeof(Pos), blabla4); } catch (Exception ex) { Console.WriteLine("Error. (Введите повторно)"); pro2 = Pos.None; goto Found4; } list[UpdateIndex - 1] = t2; } catch (Exception e) { Console.WriteLine("Нет строки с таким номером!"); } Logging.Add(DateTime.Now, Operations.ADD, "Строка обновлена!"); break; case FIND_RAW: Console.WriteLine("Введите фамилию"); string text = Console.ReadLine(); HRD FindRaw; for (int item_list = 0; item_list < list.Count; item_list++) { FindRaw = list[item_list]; if (FindRaw.Name.ToLower().Equals(text.ToLower())) { Console.Write("{0,10}", FindRaw.Name); Console.Write("{0,10}", FindRaw.Postion); Console.Write("{0,10}", FindRaw.Yers); Console.Write("{0,10}", FindRaw.Salary); Console.WriteLine(); } } Logging.Add(DateTime.Now, Operations.ADD, "Строка найдена!"); break; case SHOW_LOG: Logging.Add(DateTime.Now, Operations.ADD, "Логи просмотрены!"); Logging.ShowInfo(); break; case EXIT: StreamWriter write = new StreamWriter(@"D:\lab.dat"); for (int list_item = 0; list_item < list.Count; list_item++) { HRD t = list[list_item]; write.WriteLine("----------------------------------------------------------------------------"); write.WriteLine("{0,10} {1,10} {2,10} {3,10}", t.Name, t.Postion, t.Yers, t.Salary); } write.Close(); break; } } while (choice != 7); }
private static void ex1() { Console.WriteLine("Введите номер подзадания (1 или 2) , который хотите увидеть "); int tmp = Convert.ToInt32(Console.ReadLine()); if (tmp == 1) { int choice = 0; do { Console.WriteLine("Выберите пункт"); Console.WriteLine("1 - Просмотр таблицы"); Console.WriteLine("2 - добавить запись"); Console.WriteLine("3 - Удалить запись"); Console.WriteLine("4 - обновить запись"); Console.WriteLine("5 - поиск записей"); Console.WriteLine("6 - просмотреть лог"); Console.WriteLine("7 - Выход"); choice = int.Parse(Console.ReadLine()); switch (choice) { case WATCH_TABLE: Console.WriteLine("{0,10} {1,10} {2,10} {3,10}", "Фамилия", "Должность", "Год рождения", "Оклад"); for (int list_item = 0; list_item < list.Count; list_item++) { HRD t = list[list_item]; Console.WriteLine("----------------------------------------------------------------------------"); t.ShowTable(t.Name, t.Postion, t.Yers, t.Salary); } Logging.Add(DateTime.Now, Operations.LOOK, "Просмотрена таблица"); break; case ADD_RAW: HRD t1; Console.WriteLine("Введите Фамилию"); t1.Name = Console.ReadLine(); Console.WriteLine("Введите Должность"); t1.Postion = Console.ReadLine(); Found1: Console.WriteLine("Введите год рождения"); try { int blabla = Convert.ToInt32(Console.ReadLine()); //вводим данные, и конвертируем в целое число t1.Yers = blabla; if ((blabla < 1895) || (blabla > 2030)) { Console.WriteLine("Error. (Введите повторно)"); goto Found1; } } catch (FormatException) { t1.Yers = 000; Console.WriteLine("Error. (Введите повторно)"); goto Found1; } Pos pro; Found3: Console.WriteLine("Введите оклад"); try { string blabla3 = Console.ReadLine(); t1.Salary = blabla3; pro = (Pos)Enum.Parse(typeof(Pos), blabla3); } catch (Exception ex) { Console.WriteLine("Error. (Введите повторно)"); pro = Pos.None; goto Found3; } list.Add(t1); Console.WriteLine("Строка была добавлена!"); Console.WriteLine(); Logging.Add(DateTime.Now, Operations.ADD, "Строка добавлена в таблицу!"); break; case REMOVE_RAW: Console.WriteLine("Введите номер строки, которую хотите удалить"); int number = int.Parse(Console.ReadLine()); try { list.RemoveAt(number - 1); } catch (Exception e) { Console.WriteLine("Строки с таким номером нет!"); } Console.WriteLine(); Logging.Add(DateTime.Now, Operations.ADD, "Строка удалена!"); break; case UPDATE_RAW: Console.WriteLine("Введите номер строки, которую хотите изменить"); int UpdateIndex = int.Parse(Console.ReadLine()); try { HRD t2 = list[UpdateIndex - 1]; //Выводим старые значения t2.ShowTable(t2.Name, t2.Postion, t2.Yers, t2.Salary); //Вводим новые значения Console.WriteLine("Введите новое фамилию"); t2.Name = Console.ReadLine(); Console.WriteLine("Введите новую должность"); t2.Postion = Console.ReadLine(); Console.WriteLine("Введите новый год рождения"); Found2: t2.Yers = int.Parse(Console.ReadLine()); try { int blabla2 = Convert.ToInt32(Console.ReadLine()); //вводим данные, и конвертируем в целое число t2.Yers = blabla2; if ((blabla2 < 1895) || (blabla2 > 2030)) { Console.WriteLine("Error. (Введите повторно)"); goto Found2; } } catch (FormatException) { t2.Yers = 000; Console.WriteLine("Error. (Введите повторно)"); goto Found2; } Console.WriteLine("Введите новый Тип"); Pos pro2; Found4: try { string blabla4 = Console.ReadLine(); t2.Salary = blabla4; pro2 = (Pos)Enum.Parse(typeof(Pos), blabla4); } catch (Exception ex) { Console.WriteLine("Error. (Введите повторно)"); pro2 = Pos.None; goto Found4; } list[UpdateIndex - 1] = t2; } catch (Exception e) { Console.WriteLine("Нет строки с таким номером!"); } Logging.Add(DateTime.Now, Operations.ADD, "Строка обновлена!"); break; case FIND_RAW: Console.WriteLine("Введите фамилию"); string text = Console.ReadLine(); HRD FindRaw; for (int item_list = 0; item_list < list.Count; item_list++) { FindRaw = list[item_list]; if (FindRaw.Name.ToLower().Equals(text.ToLower())) { Console.Write("{0,10}", FindRaw.Name); Console.Write("{0,10}", FindRaw.Postion); Console.Write("{0,10}", FindRaw.Yers); Console.Write("{0,10}", FindRaw.Salary); Console.WriteLine(); } } Logging.Add(DateTime.Now, Operations.ADD, "Строка найдена!"); break; case SHOW_LOG: Logging.Add(DateTime.Now, Operations.ADD, "Логи просмотрены!"); Logging.ShowInfo(); break; case EXIT: break; } } while (choice != 7); } if (tmp == 2) { int choice = 0; do { var logOfSession = new DoublyLinkedList <Log>(); var table = new DoublyLinkedList <WR>(); int salary; int year; Console.WriteLine("Выберите пункт"); Console.WriteLine("1 - Просмотр таблицы"); Console.WriteLine("2 - добавить запись"); Console.WriteLine("3 - Удалить запись"); Console.WriteLine("4 - обновить запись"); Console.WriteLine("5 - поиск записей"); Console.WriteLine("6 - просмотреть лог"); Console.WriteLine("7 - Выход"); choice = int.Parse(Console.ReadLine()); switch (choice) { case WATCH_TABLE: Console.WriteLine("{0,10} {1,10} {2,10} {3,10}", "Фамилия", "Должность", "Год рождения", "Оклад"); for (int list_item = 0; list_item < list.Count; list_item++) { foreach (var item in table) { item.showTable(); } } Log newLog; newLog.time = DateTime.Now; newLog.operation = "Просмотр таблицы"; logOfSession.Add(newLog); break; case ADD_RAW: string name; Pos position = new Pos(); Console.WriteLine("Введите Фамилию"); name = Console.ReadLine(); Console.WriteLine("Введите Должность"); string pos = Console.ReadLine(); if (pos == "П") { position = Pos.П; } else if (pos == "С") { position = Pos.С; } else if (pos == "А") { position = Pos.А; } else { Console.WriteLine("УПС!\n-_-"); } Found1: Console.WriteLine("Введите год рождения"); try { int blabla = Convert.ToInt32(Console.ReadLine()); //вводим данные, и конвертируем в целое число year = blabla; if ((blabla < 1895) || (blabla > 2030)) { Console.WriteLine("Error. (Введите повторно)"); goto Found1; } } catch (FormatException) { year = 000; Console.WriteLine("Error. (Введите повторно)"); goto Found1; } Pos pro; Found3: Console.WriteLine("Введите оклад"); try { int blabla3 = Convert.ToInt32(Console.ReadLine()); salary = blabla3; } catch (Exception ex) { Console.WriteLine("Error. (Введите повторно)"); pro = Pos.None; goto Found3; } WR newWr; newWr.name = name; newWr.position = position; newWr.salary = salary; newWr.year = year; Console.WriteLine("Строка была добавлена!"); Console.WriteLine(); newLog.time = DateTime.Now; newLog.operation = "Строка добавлена"; logOfSession.Add(newLog); break; case REMOVE_RAW: Console.WriteLine("Введите номер строки, которую хотите удалить"); int number = int.Parse(Console.ReadLine()); try { list.RemoveAt(number - 1); } catch (Exception e) { Console.WriteLine("Строки с таким номером нет!"); } Console.WriteLine(); newLog.time = DateTime.Now; newLog.operation = "Строка delet"; logOfSession.Add(newLog); break; case UPDATE_RAW: Console.WriteLine("Введите номер строки, которую хотите изменить"); int UpdateIndex = int.Parse(Console.ReadLine()); try { HRD t2 = list[UpdateIndex - 1]; //Выводим старые значения t2.ShowTable(t2.Name, t2.Postion, t2.Yers, t2.Salary); //Вводим новые значения Console.WriteLine("Введите новое фамилию"); t2.Name = Console.ReadLine(); Console.WriteLine("Введите новую должность"); t2.Postion = Console.ReadLine(); Console.WriteLine("Введите новый год рождения"); Found2: t2.Yers = int.Parse(Console.ReadLine()); try { int blabla2 = Convert.ToInt32(Console.ReadLine()); //вводим данные, и конвертируем в целое число t2.Yers = blabla2; if ((blabla2 < 1895) || (blabla2 > 2030)) { Console.WriteLine("Error. (Введите повторно)"); goto Found2; } } catch (FormatException) { t2.Yers = 000; Console.WriteLine("Error. (Введите повторно)"); goto Found2; } Console.WriteLine("Введите новый Тип"); Pos pro2; Found4: try { string blabla4 = Console.ReadLine(); t2.Salary = blabla4; pro2 = (Pos)Enum.Parse(typeof(Pos), blabla4); } catch (Exception ex) { Console.WriteLine("Error. (Введите повторно)"); pro2 = Pos.None; goto Found4; } list[UpdateIndex - 1] = t2; } catch (Exception e) { Console.WriteLine("Нет строки с таким номером!"); } newLog.time = DateTime.Now; newLog.operation = "Строка обновлена"; logOfSession.Add(newLog); break; case FIND_RAW: Console.WriteLine("Введите фамилию"); string text = Console.ReadLine(); HRD FindRaw; for (int item_list = 0; item_list < list.Count; item_list++) { FindRaw = list[item_list]; if (FindRaw.Name.ToLower().Equals(text.ToLower())) { Console.Write("{0,10}", FindRaw.Name); Console.Write("{0,10}", FindRaw.Postion); Console.Write("{0,10}", FindRaw.Yers); Console.Write("{0,10}", FindRaw.Salary); Console.WriteLine(); } } newLog.time = DateTime.Now; newLog.operation = "Строка найдена"; logOfSession.Add(newLog); newLog.time = DateTime.Now; newLog.operation = "Логи просмотрены"; logOfSession.Add(newLog); break; case EXIT: break; } } while (choice != 7); } }
static void Main(string[] args) { int choice = 0; do { var table = new List <HRD>(); Console.WriteLine("\n Выберите пункт"); Console.WriteLine("1 - Просмотр таблицы"); Console.WriteLine("2 - Добавить запись"); Console.WriteLine("3 - Удалить запись"); Console.WriteLine("4 - Обновить запись"); Console.WriteLine("5 - Поиск записей"); Console.WriteLine("6 - Просмотреть лог"); Console.WriteLine("7 - Записать в файл"); Console.WriteLine("8 - Сортировка"); Console.WriteLine("9 - Выход"); choice = int.Parse(Console.ReadLine()); string path = @"D:\lab.dat"; switch (choice) { case WATCH_TABLE: for (int list_item = 0; list_item < list.Count; list_item++) { HRD t = list[list_item]; Console.WriteLine("----------------------------------------------------------------------------"); t.ShowTable(t.Name, t.Postion, t.Yers, t.Salary); } StreamReader fstream = new StreamReader(path); string line; while (!fstream.EndOfStream) { line = fstream.ReadLine(); Console.Write(line); } fstream.Close(); Logging.Add(DateTime.Now, Operations.LOOK, "Просмотрена таблица"); break; case ADD_RAW: HRD t1; Console.WriteLine("Введите Фамилию"); t1.Name = Console.ReadLine(); Console.WriteLine("ВведитеДолжность"); t1.Postion = Console.ReadLine(); Found1: Console.WriteLine("Введите год рождения"); try { int blabla = Convert.ToInt32(Console.ReadLine()); //вводим данные, и конвертируем в целое число t1.Yers = blabla; if ((blabla < 1895) || (blabla > 2030)) { Console.WriteLine("Error. (Введите повторно)"); goto Found1; } } catch (FormatException) { t1.Yers = 000; Console.WriteLine("Error. (Введите повторно)"); goto Found1; } Pos pro; Found3: Console.WriteLine("Введите оклад"); try { string blabla3 = Console.ReadLine(); t1.Salary = blabla3; pro = (Pos)Enum.Parse(typeof(Pos), blabla3); } catch (Exception ex) { Console.WriteLine("Error. (Введите повторно)"); pro = Pos.None; goto Found3; } list.Add(t1); Console.WriteLine("Строка была добавлена!"); Console.WriteLine(); Logging.Add(DateTime.Now, Operations.ADD, "Строка добавлена в таблицу!"); break; case REMOVE_RAW: string linel = String.Empty; string delet = Console.ReadLine(); StreamReader sr = new StreamReader(path); while (sr.Peek() >= 0) { String temp = sr.ReadLine(); if (temp.IndexOf(delet) != -1) { } else { linel += temp; } } sr.Close(); StreamWriter sw = new StreamWriter(path); sw.Write(linel); sw.Close(); Logging.Add(DateTime.Now, Operations.ADD, "строка удалена!"); break; case UPDATE_RAW: StreamReader readf = new StreamReader(path); string surname = readf.ReadLine(); string pos = readf.ReadLine(); var position = Pos.None; if (pos == "П") { position = Pos.П; } else if (pos == "С") { position = Pos.С; } else if (pos == "А") { position = Pos.А; } int year = int.Parse(readf.ReadLine()); string salary = readf.ReadLine(); HRD newWorker; newWorker.Name = surname; newWorker.Postion = Convert.ToString(position); newWorker.Yers = year; newWorker.Salary = salary; table.Add(newWorker); Logging.Add(DateTime.Now, Operations.ADD, "Строка обновлена!"); break; case FIND_RAW: Console.WriteLine("Введите фамилию"); string text = Console.ReadLine(); HRD FindRaw; for (int item_list = 0; item_list < list.Count; item_list++) { FindRaw = list[item_list]; if (FindRaw.Name.ToLower().Equals(text.ToLower())) { Console.Write("{0,10}", FindRaw.Name); Console.Write("{0,10}", FindRaw.Postion); Console.Write("{0,10}", FindRaw.Yers); Console.Write("{0,10}", FindRaw.Salary); Console.WriteLine(); } } Logging.Add(DateTime.Now, Operations.ADD, "Строка найдена!"); break; case SHOW_LOG: Logging.Add(DateTime.Now, Operations.ADD, "Логи просмотрены!"); Logging.ShowInfo(); break; case ADD_WRITE: var encod = System.Text.Encoding.GetEncoding(1251); //Для чтения текста из файла: var Reader = new StreamReader(path, encod); String text1 = Reader.ReadToEnd(); String text2 = Reader.ReadToEnd(); Reader.Close(); StreamWriter write = new StreamWriter(@"D:\lab.dat"); int list_item1 = 0; HRD d = list[list_item1]; write.WriteLine("{0,10} {1,10} {2,10} {3,10}", d.Name, d.Postion, d.Yers, d.Salary); list_item1++; write.Close(); //Для записи в файл: var Writer = new StreamWriter(path, true, encod); if (text1 != text2) { Writer.Write(text1); } Writer.Close(); Logging.Add(DateTime.Now, Operations.ADD, "Запись в файл"); break; case Sort: for (int i = 0; i < list.Count; i++) { int j = i - 1; var tmp = list[i]; while (j >= 0 && tmp.Yers < list[j].Yers) { list[j + 1] = list[j]; j--; } list[j + 1] = tmp; } using (StreamWriter newText = new StreamWriter(path, false)) { for (int i = 0; i < list.Count; i++) { newText.WriteLine("{0,10} {1,10} {2,10} {3,10}", list[i].Name, list[i].Postion, list[i].Yers, list[i].Salary); } } Console.WriteLine("Таблица готова"); Logging.Add(DateTime.Now, Operations.ADD, "Сортировка"); break; case EXIT: break; } } while (choice != 9); }