Перенос части текста из одного файла в другой - C#

Узнай цену своей работы

Формулировка задачи:

Задача: _______ Распечатать анкетные данные студентов, получивших за все время обучения одну оценку 4, а все остальные оценки - 5. _______ Предположим, дан фаил, в котором записаны фамилии и оценки, примерно так: Gelz |5,4,5,5,5,5 Nevelson |3,4,5,5,5,5 Grimp |3,4,5,5,5,5 Brown |4,4,5,5,5,5 Harris |5,4,5,5,5,5 Lee |2,4,5,5,5,5 Lewis |4,5,5,5,5,5 Walker |5,4,5,5,5,5 Phillips |5,5,5,5,4,5 Из данного файла надо перенести данные только об студентах, получивших за все время обучения одну оценку 4, а все остальные оценки - 5.

Решение задачи: «Перенос части текста из одного файла в другой»

textual
Листинг программы
  1.         /// <summary>
  2.         /// Проверяем строку на следование условию
  3.         /// </summary>
  4.         /// <param name="line">Строка</param>
  5.         /// <returns>True - НЕ соответствует условию</returns>
  6.         private bool testLine(string line)
  7.         {
  8.             bool ex = false;
  9.             //Переменная, для считывания оценки
  10.             int num;
  11.             //Флаг наличия одной четвёрке в списке оценок
  12.             bool forFlag = false;
  13.             //Парсим строку на имена и оценки
  14.             var buff = line.Split(new string[] { "\t|" }, StringSplitOptions.None);
  15.            
  16.             //Просто проверка на некорректные строки
  17.             if(buff.Length > 1)
  18.             {
  19.                 //Парсим на отдельные оценки
  20.                 buff = buff[1].Split(new char[] { ',' }, StringSplitOptions.None);
  21.                 //Проходимся по всем оценкам
  22.                 foreach(var s in buff)
  23.                 {
  24.                     //Парсим оценку в число, и сразу же проверяем на ошибки
  25.                     if(int.TryParse(s, out num))
  26.                     {
  27.                         //Если найдена четвёрка
  28.                         if (num == 4)
  29.                         {
  30.                             //И она уже не первая
  31.                             if (forFlag)
  32.                             {
  33.                                 //Говорим, что проверка не пройдена
  34.                                 ex = true;
  35.                                 //И тупо выходим из цикла
  36.                                 break;
  37.                             }
  38.                             //Говорим, что 4 уже была
  39.                             forFlag = true;
  40.                         }
  41.                         //Если оценка меньше 4, то тупо выходим из цикла
  42.                         else if (num < 4)
  43.                         {
  44.                             //Говорим, что проверка не пройдена
  45.                             ex = true;
  46.                             break;
  47.                         }
  48.                         //А, при пятёрках мы ничего не делаем
  49.                     }
  50.                 }
  51.             }
  52.  
  53.             return ex;
  54.         }
  55.  
  56.         /// <summary>
  57.         /// Перенос строк из одного файла в другой
  58.         /// </summary>
  59.         /// <param name="inputPath">Путь к файлу с входными данными</param>
  60.         /// <param name="outputPath">путь к файлу для записи данных</param>
  61.         private void moveLines(string inputPath, string outputPath)
  62.         {
  63.             //Считываем все строки из файла, и переводим их в список
  64.             var lines = System.IO.File.ReadAllLines(inputPath).ToList();
  65.             //Удаляем все строки, не соответствующие условию
  66.             lines.RemoveAll(testLine);
  67.             //Записываем отсортированные строки в файл
  68.             System.IO.File.WriteAllLines(outputPath, lines);
  69.         }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.727 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы