Работа с текстовыми файлами - PascalABC.NET (251669)
Формулировка задачи:
1. Вывести на экран и в новый файл все символы исходного файла,
предшествующие первой запятой. Предусмотреть случай, что запятой
может не быть в файле.
2. Дан файл, содержащий произвольный текст. Определить, чего в
нем содержится больше: русских букв или цифр. Результат записать в
новый файл.
Подобного решения не нашел. Не вдупляю задание 2 даже близко. В первом хожу вокруг да около, получается выводить только все слова ПОСЛЕ всех запятых.
Пока получается что-то в таком роде :
null
Подобным способом вроде получается проверить нужный символ в файле и закончить проверку после 1 символа.null
можно ли знаки вот так, через константу объявлять?null
Решение задачи: «Работа с текстовыми файлами»
textual
Листинг программы
begin writeln(Arr('Русских букв больше.', 'Русских букв и цифр поровну.', 'Цифр больше.') [Sign(ReadAllText(ReadLnString('Имя файла:'), Encoding.UTF8).Aggregate(0, (s, ch) -> s + (ch.ToLower in ['а' .. 'я'] ? -1 : (ch in ['0' .. '9'] ? 1 : 0)))) + 1]) end.
Объяснение кода листинга программы
- Программа запрашивает у пользователя имя файла с помощью функции
ReadLnString
. - Затем происходит чтение содержимого файла с помощью функции
ReadAllText
, указав имя файла и кодировкуEncoding.UTF8
. - Результат чтения файла передается в функцию
Aggregate
, которая принимает начальное значение (в данном случае 0), а также лямбда-выражение, которое определяет порядок обработки каждого символа текста. - Внутри лямбда-выражения происходит проверка, является ли символ русской буквой (
ch.ToLower in ['а' .. 'я']
). Если это так, то к результату добавляется -1. - Если символ является цифрой (
ch in ['0' .. '9']
), то к результату добавляется 1. - Если символ не является ни русской буквой, ни цифрой, то к результату добавляется 0.
- Результат функции
Aggregate
используется в функцииwriteln
вместе с тремя строками, которые предварительно выводятся на экран. - Последний параметр функции
writeln
- это значение, полученное на шаге 7, увеличенное на 1.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д