Упорядочить список именинников по месяцу - PascalABC.NET

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

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

в текстовом файле даны фио и дата рождения учеников.Упорядочить их по месяцу,а если месяцы равны-то по числу.вывод осуществлять в текстовый файл.

Решение задачи: «Упорядочить список именинников по месяцу»

textual
Листинг программы
function sDate(s : string) : string;
begin 
  var v := s.Split(' ').ToArray(); result := v[v.Length - 3];
end;
 
begin
  WriteAllText('output.txt', string.Join(NewLine, ReadAllLines('input.txt').
    OrderBy(s -> sDate(s).Split('.')[1]).ThenBy(s -> sDate(s).Split('.')[0])));
end.

Объяснение кода листинга программы

В этом коде используется функция sDate, которая принимает строку и возвращает строку, содержащую третью (последнюю) часть даты в формате день.месяц.год. Далее, используется метод Split для разделения каждой строки в файле input.txt по пробелам, преобразуя их в массив строк. Затем, используя метод OrderBy и затем ThenBy, строки сортируются по месяцу (второй части строки после разделения по точке) и дню (первой части строки после разделения по точке) соответственно. Наконец, используя метод Join и NewLine, отсортированные строки записываются в файл output.txt.

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

7   голосов , оценка 4.286 из 5
Похожие ответы