Переписать слова из одного файла в другой, перевернув каждое - PascalABC.NET
Формулировка задачи:
Составить программу реализующую конкретную схему действий. В содержимое программы должна входить процедура формирования исходного файла нужного типа и формата
Задание
Дан текстовый файл,состоящий из слов разделенных пробелом.В конце текста - '.'.Образовать новый файл в котором на месте каждого слова из первого файла будет записана последовательность букв в обратном порядке (например буква->авкуб)
Решение задачи: «Переписать слова из одного файла в другой, перевернув каждое»
textual
Листинг программы
uses System.IO; function makeS(InFileName,OutFileName:string):boolean; var l:string; begin l:='';Result:=false; foreach s:string in &File.ReadAllLines(InFileName,Encoding.Default) do if pos('.',s)>0 then begin delete(s,pos('.',s),s.length); l:=l+string.Join(' ',s.Split(' ').Select(ReverseString))+'.'; &File.WriteAllText(OutFileName,l,Encoding.Default); Result:=true; break; end else l:=l+string.Join(' ',s.Split(' ').Select(ReverseString))+NewLine; end; begin writelnformat('{0}',Makes('r1.txt','r2.txt') ? 'Новый файл создан успешно':'ошибка создания файла'); end.
Объяснение кода листинга программы
- Программа использует функцию
makeS
, которая принимает два аргумента типаstring
-InFileName
иOutFileName
. - В функции определен пустой строковый буфер
l
и флагResult
, изначально установленный вfalse
. - Используется цикл
foreach
, который проходит по всем строкам входного файлаInFileName
. - Если текущая строка содержит точку (
.
), то строка обрабатывается следующим образом:- С помощью функции
pos
определяется позиция точки в строке. - С помощью функции
delete
удаляются все символы после точки и сама точка. - С помощью функции
Split
строка разделяется на массив строк по пробелам. - С помощью функции
ReverseString
каждая строка из массива переворачивается. - С помощью функции
Join
строки из массива объединяются в одну строку с разделителем пробела. - Полученная строка добавляется к буферу
l
. - С помощью функции
WriteAllText
содержимое буфераl
записывается в файлOutFileName
. - Флаг
Result
устанавливается вtrue
. - Цикл прерывается с помощью оператора
break
.
- С помощью функции
- Если текущая строка не содержит точки, она добавляется к буферу
l
, предварительно перевернувшись с помощью функцииReverseString
. В конце каждой строки добавляется символ новой строкиNewLine
. - По завершении работы функции
makeS
выводится сообщение, информирующее о результате выполнения функции. - В основной части программы вызывается функция
makeS
с аргументами'r1.txt'
и'r2.txt'
. - В зависимости от значения флага
Result
выводится сообщение об успешном создании нового файла или об ошибке создания файла.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д