Переписать слова из одного файла в другой, перевернув каждое - 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.

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

  1. Программа использует функцию makeS, которая принимает два аргумента типа string - InFileName и OutFileName.
  2. В функции определен пустой строковый буфер l и флаг Result, изначально установленный в false.
  3. Используется цикл foreach, который проходит по всем строкам входного файла InFileName.
  4. Если текущая строка содержит точку (.), то строка обрабатывается следующим образом:
    • С помощью функции pos определяется позиция точки в строке.
    • С помощью функции delete удаляются все символы после точки и сама точка.
    • С помощью функции Split строка разделяется на массив строк по пробелам.
    • С помощью функции ReverseString каждая строка из массива переворачивается.
    • С помощью функции Join строки из массива объединяются в одну строку с разделителем пробела.
    • Полученная строка добавляется к буферу l.
    • С помощью функции WriteAllText содержимое буфера l записывается в файл OutFileName.
    • Флаг Result устанавливается в true.
    • Цикл прерывается с помощью оператора break.
  5. Если текущая строка не содержит точки, она добавляется к буферу l, предварительно перевернувшись с помощью функции ReverseString. В конце каждой строки добавляется символ новой строки NewLine.
  6. По завершении работы функции makeS выводится сообщение, информирующее о результате выполнения функции.
  7. В основной части программы вызывается функция makeS с аргументами 'r1.txt' и 'r2.txt'.
  8. В зависимости от значения флага Result выводится сообщение об успешном создании нового файла или об ошибке создания файла.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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