Запись текста в файл, чтение текста из файла, перепись текста из одного файла в другой файл - Free Pascal

Узнай цену своей работы

Формулировка задачи:

Составить программу, в которой организованы следующие действия:
  • запись текста в файл, чтение текста из
  • файла, перепись текста из одного файла
  • в другой файл.
Эти действия оформить в подпрограммах. Обеспечить пользователю возможность выбирать нужную ему подпрограмму через интерфейс управления(саse)

Решение задачи: «Запись текста в файл, чтение текста из файла, перепись текста из одного файла в другой файл»

textual
Листинг программы
  1. const
  2.   f1n: string = 'f:\files\cost\free\file1.txt';
  3.   f2n: string = 'f:\files\cost\free\file2.txt';
  4.   eCreate: string = '*** Ошибка: не удалось создать файл ';
  5.   eOpen: string = '*** Ошибка: не удалось открыть файл ';
  6. var
  7.   q: char;
  8.   s: string;
  9.   f1, f2: text;
  10. procedure WriteF;
  11. begin
  12.   {$I-}
  13.   Rewrite(f1);
  14.   if IOResult <> 0 then begin
  15.     WriteLn(eCreate, f1n);
  16.     exit;
  17.   end;
  18.   {$I+}
  19.   WriteLn('Введите текст. Завершение ввода - пустая строка.');
  20.   repeat
  21.     ReadLn(s);
  22.     if s='' then Break;
  23.     WriteLn(f1, s);
  24.   until false;
  25.   Close(f1);
  26. end;
  27. procedure ShowF;
  28. begin
  29.   {$I-}
  30.   Reset(f1);
  31.   if IOResult <> 0 then begin
  32.     WriteLn(eOpen, f1n);
  33.     exit;
  34.   end;
  35.   {$I+}
  36.   WriteLn('Содержимое файла ', f1n);
  37.   while not EOF(f1) do begin
  38.     ReadLn(f1, s); WriteLn(s);
  39.   end;
  40.   Close(f1);
  41. end;
  42. procedure CopyF;
  43. begin
  44.   {$I-}
  45.   Reset(f1);
  46.   if IOResult <> 0 then begin
  47.     WriteLn(eOpen, f1n);
  48.     exit;
  49.   end;
  50.   Rewrite(f2);
  51.   if IOResult <> 0 then begin
  52.     WriteLn(eCreate, f2n);
  53.     Close(f1);
  54.     exit;
  55.   end;
  56.   {$I+}
  57.   while not EOF(f1) do begin
  58.     ReadLn(f1, s); WriteLn(f2, s);
  59.   end;
  60.   Close(f1); Close(f2);
  61. end;
  62. begin
  63.   Assign(f1, f1n);
  64.   Assign(f2, f2n);
  65.   repeat
  66.     WriteLn;
  67.     WriteLn('1 - Запись файла');
  68.     WriteLn('2 - Показ файла');
  69.     WriteLn('3 - Копирование файла');
  70.     WriteLn('0 - Выход');
  71.     Write('Ваш выбор: '); ReadLn(q);
  72.     case q of
  73.     '0': ;
  74.     '1': WriteF;
  75.     '2': ShowF;
  76.     '3': CopyF;
  77.     else
  78.       WriteLn('*** Ошибка: неправильный выбор.');
  79.     end;
  80.   until q='0';
  81. end.

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

  1. Задача программы - управление файлами в папке cost на диске free.
  2. Введенный текст записывается в файл file1.txt и сразу же читается из него.
  3. Если при записи или чтении файла возникает ошибка, выводится сообщение об ошибке и программа завершается.
  4. Если введенный текст пуст, цикл чтения и записи прерывается.
  5. При показе содержимого файла file1.txt оно выводится построчно.
  6. При копировании содержимого файла file1.txt в файл file2.txt возможна ошибка, при которой программа прекращает работу.
  7. Цикл выбора действий продолжается до тех пор, пока пользователь не введет 0.
  8. Введенные пользователем действия выбираются с помощью оператора case.
  9. Если введенное действие не соответствует ни одному из ожидаемых (1, 2, 3), выводится сообщение об ошибке.

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


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

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

8   голосов , оценка 3.875 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы