Упорядочить список именинников по месяцу - 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.