Сортировка строк по числовому окончанию - Pascal
Формулировка задачи:
Здравствуйте. Прошу решить эту задачу.
Дан текстовый файл, содержащий строки из чисел и других символов. Строки варьируют по длине. Разделители: пробелы, могут быть и другие символы. Каждая строка заканчивается вещественным числом (пример: 6.11). Задача: рассортировать строки по возрастанию этого заключительного числа и записать в новый файл. Написать программы в коде ТП и выше - для отдельного использования, и в виде "точечной записи" класс(.объект.метод) в стиле .NET меньшим количеством строк - для сопутствующего использования в других программах. Образец входного файла ниже.
Решение задачи: «Сортировка строк по числовому окончанию»
textual
Листинг программы
begin WriteAllLines('outfile.txt', ReadAllLines('infile.txt').OrderBy(s -> StrToFloat(Regex.Match(s, '\d+\.\d+$').Value)).ToArray()); end.
Объяснение кода листинга программы
- Создается новый файл с именем
outfile.txt
. - В этот файл записываются строки из файла
infile.txt
, отсортированные по числовому значению, которое находится в конце каждой строки. - Процесс считывания строк происходит при помощи функции
ReadAllLines
, а их последующей сортировки достигается с использованием методаOrderBy
. - Значения переменных:
outfile.txt
- имя создаваемого файла.infile.txt
- имя файла, из которого считываются строки.s
- строка из файла, используемая для сортировки.StrToFloat
- функция, преобразующая строку в число.Regex.Match(s, '\d+\.\d+$').Value
- извлечение числа с плавающей запятой из строки через регулярное выражение.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д